C# 事務的創建,提交和回滾


在C#中開啟事務的步驟

01.調用SqlConnection對象的BeginTransaction()方法,創建一個SqlTransaction對象,標志事務開始。

02.將創建的SqlTransaction對象分配給要執行的SqlCommand的Transaction屬性。

03.調用相應的方法執行SqlCommand命令。

04.調用SqlTransaction的Commit()方法完成事務。或調用Rollback()方法終止事務。  

4.在進行事務操作中的注意點

01.在調用BeginTransaction()方法開始事務之前,要打開數據庫連接,否則出現異常。

02.如果在事務的Commit()方法或RollBack()方法執行前數據庫連接斷開或關閉,則事務將回滾。

            
//准備連接字符串 string str = "data source=.;initial catalog=Myschool;uid=sa;pwd=123"; //創建數據庫連接對象 SqlConnection con = new SqlConnection(str); //sql語句:添加一條記錄到年級表 string sql = "insert into grade values(@gradename)"; //創建SqlParameter對象,設置參數 SqlParameter sp = new SqlParameter("@gradename", txtgradename.Text); //創建命令對象 SqlCommand cmd = new SqlCommand(sql, con); //通過Parameter集合的add()方法天填充參數集合 cmd.Parameters.Add(sp); //打開連接 con.Open(); //默認讓SqlTransaction對象為空 SqlTransaction trans = null; //開啟事務:標志事務的開始 trans = con.BeginTransaction(); try { //將創建的SqlTransaction對象分配給要執行的sqlCommand的Transaction屬性 cmd.Transaction = trans; //執行sql如果添加成功放回1 int count=cmd.ExecuteNonQuery(); if (count > 0) { MessageBox.Show("成功"); //事務提交 trans.Commit(); } else { MessageBox.Show("失敗"); //事務回滾 trans.Rollback(); } } catch (Exception) { //如果某個環節出現問題,則將整個事務回滾 trans.Rollback(); }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM