我有一个我一直在使用的业务对象,它有一堆属性和一个Save方法,它可以插入/更新数据库。 save方法不是状态,因此需要实例化对象,并从对象中提取DB更新/插入的属性。
现在我正在尝试使用ObjectDataSource将对象绑定到FormView。我有它的工作,所以它实例化基于QueryString参数,没有问题,并填充文本框就好了。我已将UpdateMethod设置为Save功能。现在它被卡住了。
似乎ObjectDataSource需要一个方法,其中包含所有字段/属性/文本框作为参数。我原以为它会更新对象的属性,然后调用无参数的Save函数。这是一厢情愿的想法吗?
我现在是否需要更改我的保存功能以包含参数,并将此习惯用于此新方法的所有实例更改为此原因?
由于 肖恩
答案 0 :(得分:1)
不幸的是,它确实需要参数。
我重载了插入/更新方法以包含一些参数。使用params将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