0

使用しているビジネスオブジェクトがあります。これには、多数のプロパティと、データベースに挿入/更新するSaveメソッドがあります。saveメソッドはNOTステータスであるため、オブジェクトをインスタンス化する必要があり、DB更新/挿入のプロパティがオブジェクトから取得されます。

ここで、ObjectDataSourceを使用してオブジェクトをFormViewにバインドしようとしています。私はそれを機能させているので、QueryStringパラメーターに基づいてインスタンス化され、問題なく、テキストボックスに問題なく入力されます。Save関数に設定したUpdateMethod。今それは立ち往生しています。

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 に答える