『Visual C#実践講座』 3章 その4 トランザクション処理
関連するテーブルの処理全体をトランザクションとして管理する。
データベースへの更新処理がすべて正常終了すれば「コミット」し、そうでなければ「ロールバック」する。
これをトランザクション処理という。
このように処理しないと、更新の途中で異常終了した時に不整合なデータが生じてしまい、システムに悪影響を及ぼしてしまう。
using(var _con = new SqlConnection(strConnection)) { _con.Open(); using(var tran = _con.BeginTransaction()) { try { // 更新処理 tran.Commit(); } catch { // ロールバック tran.Rollback(); } } }
SqlConnection クラス (System.Data.SqlClient)
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection(VS.80).aspx
SqlConnection メンバ (System.Data.SqlClient)
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection_members(VS.80).aspx
BeginTransaction, ChangeDatabase, Close, Open
System.Data.SqlClient 名前空間
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient(VS.80).aspx
ADO.NET でのデータへの接続およびデータの取得
http://msdn.microsoft.com/ja-jp/library/ms254937(VS.80).aspx
.NET Framework2.0からは次のように書ける
using(var tScope = new TransactionScope()) { // 更新処理 // 更新処理がすべて正常終了すれば更新をコミットする。そうでなければ、ロールバックする。 tScope.Complete(); }
10 行でズバリ !! TransactionScope の利用 (C#)
http://msdn.microsoft.com/ja-jp/events/dd253124.aspx
TransactionScope クラス (System.Transactions)
http://msdn.microsoft.com/ja-jp/library/system.transactions.transactionscope(VS.80).aspx
TransactionScope メンバ (System.Transactions)
http://msdn.microsoft.com/ja-jp/library/system.transactions.transactionscope_members(VS.80).aspx
Completeメソッドがメイン
System.Transactions 名前空間
http://msdn.microsoft.com/ja-jp/library/system.transactions(VS.80).aspx