サーバー データベースをローカル データベースから更新したい
Dim mycon As New SqlConnection(myserverConString)
Dim myAdapter As New SqlDataAdapter("SELECT * FROM MYTABLE", mycon)
Dim mybuilder As New SqlCommandBuilder(myAdapter)
myAdapter.UpdateCommand = mybuilder.GetUpdateCommand(True)
dim dt as datatable
'code to fill dt from my local db
'using select statement
For Each DR As DataRow In dt.Rows
DR.SetModified()
Next
dt.AcceptChanges()
myAdapter.Update(dt)
問題は、使用されているデータテーブルに実際には変更が含まれておらず、コマンドビルダーの updatecommand が間違った「場所」を使用していることです。
UPDATE [MYTABLE] SET [COLUMN0] = @COLUMN0, [COLUMN1]=@COLUMN1 WHERE
([COLUMN0]=@Original_COLUMN0) AND ([COLUMN1]=@Original_COLUMN1))
COLUNM0 は主キーです
COLUMN1 は、ローカル DB の更新された値です。
そして、同じスキーマであるサーバー DB で更新したいと考えています。
COLUMN1 は変更された値であるため、「WHERE 句」では使用できません
dt には元の値がありません。
私のコードではエラーは発生しませんが、
しかし、それはまた何も更新しません。