C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 10 を表示中)
■1535 / )  トランザクションの状態の判定
□投稿者/ 緑茶庵 (1回)-(2007/02/27(Tue) 14:35:19)

分類:[C# (Windows)] 

DBのトランザクションに関するご質問です。

開発環境:VisualStadio2005(.NET2.0), WindowsXP
使用言語:C#

DBTransaction クラスを使用して
トランザクションの管理をしておりますが
DBへの処理途中でエラーで終了や意図的に終了した場合に(未COMMIT状態)
必ずRollBack処理を行う良い方法はありますでしょうか?

現在、下記の例のように
boolのフラグを設けて無理やり判定を行っておりますが
フラグを使わずにもう少しスッキリとした方法を探しております。

他言語ですが、DelphiのDB接続を管理するオブジェクト(TDataBase)の
InTransactionメソッド(トランザクション中の判定)のような
メソッドがDBTransactionにあれば・・と思ったのですが

DBTransaction クラスのメンバには
トランザクション中かどうかを判定するメソッド・プロパティは
無いようでした・・

よろしくお願いいたします。

-------例-------------------------------
*コネクションは既に存在するとする

//トランザクションの開始
using (DBTransaction trans = コネクション.BeginTransaction())
{
    //トランザクション判定フラグ初期化
    bool transFlg = false;
    try
        //////////////
        //DBへの処理(DML)//
        //省略//
        //////////////

        //コミット
        trans.Commit;

        //トランザクション判定フラグをtrue(コミット完了)に変更する
        transFlg = true;
    }
    finally
    {
        //トランザクション判定フラグがfalse(未コミット)の場合はロールバックする
        if (!transFlg)
        {
            trans.RollBack();
        }
    }
}
    
-----------------------------------






返信 編集キー/


管理者用

- Child Tree -