2009-08-25 62 views
0

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

今私はObjectDataSourceでFormViewにオブジェクトをバインドしようとしています。私はそれがQueryStringパラメータに基づいてインスタンス化するように働いています、問題はありません。 UpdateMethod私はSave関数に設定しました。今それは固まってしまいます。

ObjectDataSourceには、すべてのフィールド/プロパティ/テキストボックスをパラメータとして持つメソッドが必要なようです。私はそれがオブジェクトのプロパティを更新し、パラメータのないSave関数を呼び出すと思っていたでしょう。この希望的な考えですか?

パラメータを含むように保存機能を変更し、この新しい方法に慣れているすべてのインスタンスを変更する必要がありますか?

おかげ ショーン

答えて

1

残念ながら、それはparamsは必要ありません。

いくつかのパラメータを含むように挿入/更新メソッドをオーバーロードしました。 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 
関連する問題