0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ACCESSにADO.NETでアクセスする場合のトランザクション制御 #1

Last updated at Posted at 2015-06-18

(※ここに書いているのは“LINQ”を使ったアクセスではなく、ADO.NETを使ったアクセスについての事です。)

Microsoft ACCESSADO.NETを使ってアクセスする方法には“接続型”と、“非接続型”がある。

非接続型は、DBから取得したデータをDataTableに読み込むもので、DataTable上で編集をした後で一括してDBに反映することができる。

DataTableをDataGridViewコントロールにマッピングして表形式で表示することができるので、ユーザにDataGridView上で自由に更新作業(内容変更、行追加、行削除)を行なってもらうことができる。

更新した後でOleDbCommandBuilder()メソッドを実行すると更新内容をDBに反映する為の複数のSQL文(update, insert, delete)を自動生成してくれるので、SQL文をプログラムで作る必要がなく便利である。その後で、Update()メソッドを実行してDBに反映する。

ただし、トランザクション制御をしておかないと何れかのSQL文の実行でエラーが発生した場合、複数のSQL文のうち一部だけ反映され、他は反映されないということが起こる。

また、当然のことながら複数のDataTableを元に同時に更新する場合や、接続型と、非接続型が混在した更新を行なう場合もトランザクション制御が必要となる。

非接続型のトランザクション制御
接続型のトランザクション制御
複数のDataTableの変更を同時にDBに反映する際のトランザクション制御
接続型、非接続型が混在した更新のトランザクション制御
トランザクション制御に関する分かり難いエラーメッセージ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?