おのれ鍋奉行が!

SqlTransaction クラス

最終更新:

lmes2

- view
管理者のみ編集可

SqlTransaction クラス


概要

.NET Framework で、トランザクション処理を行う方法のひとつ。
C#でトランザクションを行うには、これ以外に、

  • TSQL内で BEGIN TRANSACTION~ によるデータベーストランザクション。
  • @Pageディレクティブで、Transaction属性によるトランザクション。

がある。

参照


参考


元ネタ


前提条件


手順

以下のソースは、元ネタのURLから転載。
※ASP.NETではない(Console.WriteLine()とか。)がトランザクションの使い方としては同じ。

using (SqlConnection connection = new SqlConnection(connectString))
{
    connection.Open();
 
    // トランザクション開始
    SqlTransaction sqlTran = connection.BeginTransaction();
 
    // SqlCommand クラスにトランザクションを設定
    SqlCommand command = connection.CreateCommand();
    command.Transaction = sqlTran;
 
    try
    {
        command.CommandText =
          "INSERT INTO Production.ScrapReason(Name) VALUES('Wrong size')";
        command.ExecuteNonQuery();
        command.CommandText =
          "INSERT INTO Production.ScrapReason(Name) VALUES('Wrong color')";
        command.ExecuteNonQuery();
 
        // コミット
        sqlTran.Commit();
        Console.WriteLine("Both records were written to database.");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        Console.WriteLine("Neither record was written to database.");
 
        // ロールバック
        sqlTran.Rollback();
    }
}
 
記事メニュー
目安箱バナー