0

我有一个一直在使用的业务对象,它有一堆属性和一个 Save 方法,用于插入/更新数据库。保存方法不是状态,因此需要实例化对象,并且从对象中提取数据库更新/插入的属性。

现在我正在尝试使用 ObjectDataSource 将对象绑定到 FormView。我让它工作,所以它基于 QueryString 参数实例化,没问题,并且很好地填充文本框。我已将 UpdateMethod 设置为 Save 功能。现在它卡住了。

似乎 ObjectDataSource 需要一个将所有字段/属性/文本框作为参数的方法。我原以为它会更新对象的属性,然后调用无参数的 Save 函数。这是一厢情愿吗?

我现在是否需要更改我的 Save 函数以包含参数,并更改它习惯于这种新方法的所有实例,只是出于这个原因?

谢谢肖恩

4

1 回答 1

1

不幸的是,它确实需要参数。

我重载了插入/更新方法以包含一些参数。使用参数将 ObjectDataSource 附加到方法。

重载的 Update 方法调用保存所有数据的原始 Update 方法。对我来说似乎有点骇人听闻,但它确实有效。

        Public Sub Update()
        Dim isUpdated As Boolean = False

        sql = "UPDATE AudioFiles SET Title = @Title, [desc] = @desc, Active = @Active WHERE fileID = @fileID"
        conn = New SqlConnection(connString)
        conn.Open()

        ...

    End Sub

    Public Sub Update(ByVal upFileID As Integer, ByVal upTitle As String, ByVal upDesc As String, ByVal upActive As Boolean)
        Dim isUpdated As Boolean = False
        Dim audioFile As New AudioFiles(fileID)

        If Len(upTitle) > 0 Then
            _title = title
        End If

        ...  

       audioFile.Update()

    End Sub
于 2009-08-25T23:38:54.030 回答