DataTable からレコードを削除し、接続されているデータベースを更新しようとしています。
DataGridView の行を削除してから、次を使用してデータセットを更新します。
Me.Tab2_DGVDuty.Rows.RemoveAt(Me.Tab2_DGVDuty.CurrentRow.Index)
ds1.AcceptChanges()
Tab2_DGVDuty.Refresh()
次に、次のように adapter.update を呼び出します。
Dim adapter As New SqlDataAdapter
Dim cmdBuilder As New SqlCommandBuilder(adapter)
Dim DutyDetails As String = "SELECT * from MyTable"
adapter.SelectCommand = New SqlCommand(DutyDetails, SQLConn)
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand
adapter.DeleteCommand = cmdBuilder.GetDeleteCommand
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(adapter)
adapter.Update(ds1.Tables("DT_Table"))
しかし、データをリロードすると、レコードはまだそこにあります。値を変更して更新すると、これは正常に機能しますが、何らかの理由で削除されません。
どんな助けでも大歓迎です。
編集:OK、以下に提案するように削除を次のように変更しました:
ds1.Tables("DT_Table").Rows(Tab2_DGVDuty.CurrentRow.Index).Delete()
これはボタンに取り付けられており、最初は問題なく削除されますが、別のレコードを削除するために 2 回目に押すと何も起こりません。私が使用する場合
ds1.AcceptChanges()
その後、正常に動作します。ただし、上記を使用すると、以下のコードはデータベースから何も削除しません。
Dim adapter As New SqlDataAdapter
Dim cmdBuilder As New SqlCommandBuilder(adapter)
Dim DutyDetails As String = "SELECT * from MyTable"
adapter.SelectCommand = New SqlCommand(DutyDetails, SQLConn)
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand
adapter.DeleteCommand = cmdBuilder.GetDeleteCommand
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(adapter)
adapter.Update(ds1.Tables("DT_Table"))