C# – TransactionScopeでトランザクション

業務アプリケーションにデータベース処理はつきもので、

さらにデータベース処理には、トランザクションがつきもので、

またまたトランザクション処理にはコミットと、ロールバックが・・・

今まではどんな言語を使うにしろ、トランザクション処理では、

トランザクションの開始と、コミット、そして例外時にはロールバックと

明示的に記述していた。

C#で、SqlTransactionを利用した従来の書き方

using (SqlTransaction tran = con.Begin.Transaction())

{

try {

//SQLによるデータベース更新処理

:

//コミット

tran.Commit();

}

catch {

//ロールバック

tran.Rollback();

}

}

しかし.NET Framework2.0ではもう少し簡単に書けるようになった、

System.Transaction.TransactionScopeクラスが用意されている。

TransactionScope.Complete()メソッドが呼ばれるとコミットされ、

TransactionScope.Dispose()メソッドが呼ばれるとロールバック

される仕組みとのこと。

なので、usingステートメントと組み合わせて、以下のように書ける。

using (TransactionScope tran = new TransactionScope()) {

//SQLによるデータベース更新処理

:

//コミット

tran.Complete();

}

※例外が発生したり、Complete()メソッドを呼び出さずに、

usingステートメントを抜けると自動的にロールバックされる。

また、TransactionScope クラスには自動的にコネクションや、

SqlCommandクラスを検出する機能があるため、今までのように

明示的にコネクションやSqlCommandのインスタンスとトランザクション

のインスタンスを結びつける必要が無くなっているのもポイント。

Struts2 タグと同様の処理をおこなう

続 Struts 2入門

関連記事

  1. Seasar2 徹底入門

    Seasar2徹底入門著者: 竹添 直樹発行人: 佐々木 幹…

  2. Struts2サンプル 掲示板アプリケーション

    はじめに今回はStruts2を利用した、より実践的なアプリケーション…

  3. Struts2 をインストールする

    最初にまずStruts2をインストールする前提条件ですが、J…

  4. 続 Struts 2入門

    CodeZineで、Struts2入門(1)~(8) の続編、続 S…

  5. Struts2 の脆弱性を悪用した攻撃の急増

    Webアプリケーションフレームワークで有名になったなStrutsの後継、…

  6. ADODB.Recordeset をXMLデータ…

    シリアライズタイトルの処理は非常に簡単です。ADODB.Re…

  7. C# – NotifyIconを利用…

    業務アプリに限らず、いろいろなプログラム作成を経験していると、タスク…

  8. JANコード作成プログラム[.net]

    JANコードJANコードとは、ご存じのとおり、日本で最も普及している…

最近の記事

  1. Microsft .NET C#
  2. れいといちかとまほうのトンネル
PAGE TOP