• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataGridViewからDBの更新)

DataGridViewからDBの更新

このQ&Aのポイント
  • DataGridViewの内容を変更してボタンを押したらDBを更新する方法について教えてください。
  • サンプルコードを使用してDataGridViewで編集したデータをDBに更新しようとしていますが、更新ができません。
  • どのようにすればDataGridViewの変更内容をDBに反映させることができるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

まず、OleDbDataAdapterとDataTableの違いから。 DataTableはデータを記憶しておく器です。 OleDbDataAdapterはデータベースと記憶した器との間を取り持つものです。 ではこの場合なぜ変更がデータベースに反映されないのか。 それは、OleDbDataAdapterが更新処理の時にないからです。 DataRowのAcceptChangeはDataRowのRowStateをUnchangedに変えてしまうだけの処理です。 OleDbDataAdapterはこのRowStateの値を見ながら、この行は追加されたものだ、変更されたものだ、削除されたものだと判断して更新処理をそれぞれに適したコマンドを使ってデータベースに更新処理を行います。 このコマンドは指定しないといけません。 それは、OleDbDataAdapterのInsertCommand,UpdateCommand,DeleteCommandです。 コードとしては、 myOleDbDataAdapter.Update(myDataTable) というかんじです。 これで、Updateメソッドの中でRowStateの状態を見ながら、自動的にどのSQL文を使用するか判断して処理してくれます。

Alshark
質問者

お礼

回答ありがとうございます。 とても分かりやすい解説でした。 いろいろ調べても上記のようなコードがいきなり書かれていることが多く Datatable、Dataadapterなどのコード理解が難しかったのでこのような質問となりました。 ありがとうございました。