はじめに
C#でデータベースに対してストアドで更新処理を行うとき、トランザクション処理を行うことが多いと思います。
C#でストアドをtry・catchを使ってトランザクション処理で実行する方法を調べたのでまとめます。
ソースコード
var db = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;
using(var connection = new SqlConnection(db))
using(var cm = connection.CreateCommand())
{
connection.Open();
cm.Connection = connection;
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "(ストアド名)";
//ここでパラメータの設定など行う
//トランザクション開始
var transaction = connection.BeginTransaction();
cm.Transaction = transaction;
try {
cm.ExecuteNonQuery();
//コミット
transaction.Commit();
}
catch
{
//ロールバック
transaction.Rollback();
}
コメント