我必须使用ObjectDataSource更新的参数吗?

时间:2009-08-25 23:23:01

标签: asp.net parameters objectdatasource

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

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

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

我现在是否需要更改我的保存功能以包含参数,并将此习惯用于此新方法的所有实例更改为此原因?

由于 肖恩

1 个答案:

答案 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