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. Struts2 タグと同様…

    <html:base>タグ<html:base&g…

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

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

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

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

  4. Struts2 Conventionプラグイン

    Struts2の大きな特徴である、Zero Configuratio…

  5. Struts2 最初のアプリケーション

    Zero Configurationそれでは、Struts2での最初…

  6. Struts2 RequestDispatche…

    getRequestDispatcher fowardStrutsを…

  7. twitterアプリケーション

    twitterと連携するアプリケーション作成のためのAPI群です。O…

  8. C# – NotifyIconを利用…

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

最近の記事

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