ステップ 7 ハンズオン:

ADO.NET を利用したトランザクションの実装 その 3

ADO.NETによるデータベーストランザクションの実装


マイクロソフト株式会社 デベロッパーマーケティング本部
デベロッパーエバンジェリスト 泉貴博

最終更新日 2005 年 1 月 13 日

目標 ADO.NETを利用したデータベーストランザクションコンポーネントのテストを行う
使用技術
  • ADO.NET
  • Visual Basic .NET
取り上げるトピックス
  • ADO.NETにおけるTransactionオブジェクトを使ったトランザクションの動作を理解する。
前提知識
目次
まとめ ADO.NET では、その Transaction オブジェクトを、command オブジェクトに指定することによって、論理的なトランザクション生成します。そのトランザクションの単位で、コミット / ロールバックを行うことが可能になり、データの一貫性を保つことができるようになります。
備考 今回のサンプルでは、「 10行でズバリ!! - ADO.NET によるデータの更新」で行っているDataAdapterによる方法ではなくcommandオブジェクトによる更新を行っています。

ADO.NETによるデータベーストランザクションの実装

あらかじめ作成したADO.NETを利用したデータベーストランザクションを実装するコンポーネントと、そのクライアントを使って、そのトランザクションの動作をテストします。

[スタートプログラム] - [Microsoft SQL Server] - [Enterprise Manager]をクリックする。

Northwindデータベースを開きRegionテーブルを右クリックし[テーブルを開く]-[全行を返す]をクリックし、テーブルの内容を確認する。

Shippersテーブルを右クリックし[テーブルを開く]-[全行を返す]をクリックし、テーブルの内容を確認する

前のステップで作成した"ADOdotNetTransaction"ソリューションを開く。

[デバッグ] メニューをクリックし、[実行] をクリックする。

2つのテーブルに対するの更新処理が正常に完了していることを確認する。

再度、[デバッグ] メニューをクリックし、[実行] をクリックし、Regionテーブルに対して、PRIMARY KEY 違反になることを確認する。

Regionテーブルに対してエラーが発生したことにより、Shippersテーブルへの更新処理も行われていないことを確認する。(トランザクションが有効になっていなければ、ここで、もう一行追加されているはずです)

まとめ

このように、ADO.NETでは、その Transaction オブジェクトを、command オブジェクトに指定することによって、論理的なトランザクション生成します。そのトランザクションの単位で、コミット / ロールバックを行うことが可能になり、データの一貫性を保つことができるようになります。

 

ページのトップへ