ASP.NET入門からノートに精通する9章-Commandオブジェクトを使用してデータベースのトランザクションを実現

1546 ワード

トランザクションは、関連するタスクのセットからなるユニットです.このユニットのタスクはすべて成功するか、すべて失敗します.トランザクションの最終的な実行結果は、コミットまたは終了の2つのステータスしかありません.
トランザクションのステップが失敗すると、トランザクション範囲内のデータの変更がトランザクション実行前に設定した特定のポイントに復元されます.
例:
前提はデータベースMusicを作成することです.テーブル名はcatalogで、2つの列はid int、name varchar(50)です.
1.defaultページを追加し、ページにGridViewを追加し、データベースにバインドします.
2つのTextBoxを追加し、IDはそれぞれTextBox 1とTextBox 2である.
default.aspx.csファイルにネーミングスペースを追加
using System.Data.SqlClient; using System.Configuration; using System.Data;
web.configでは、接続文字列を定義します
GetConnectionメソッドの定義
public SqlConnection GetConnection()     {         string MyStr = ConfigurationManager.AppSettings["ConnectString"].ToString();         SqlConnection MyCon = new SqlConnection(MyStr);         return MyCon;     }
次のコードをClickイベントに追加するButtonを追加します.
       
SqlConnection MyCon = GetConnection();
        MyCon.Open();
        string MyStr = "insert into catalog values('"+this.TextBox1.Text.Trim()+"','"+this.TextBox2.Text.Trim()+"')";
        SqlCommand MyCmd = new SqlCommand(MyStr, MyCon);
        SqlTransaction SqlTrans = MyCon.BeginTransaction();
        MyCmd.Transaction = SqlTrans;//      
        try
        {
            MyCmd.ExecuteNonQuery();
            SqlTrans.Commit();//  
            MyCon.Close();
            this.DataBind();
        }
        catch
        { 
            Response.Write("alert('    ,       ')");
            SqlTrans.Rollback();//  
        }