C# ADO.Net事務處理
阿新 • • 發佈:2019-01-08
SQL Server中的事務可以將多個數據庫增刪改查操作合併為單個工作單元,在操作過程中任何部分出錯都可以滾回已經執行的所有更改.ADO.Net中也提供了事務處理功能,通過ADO.net事務,可以將多個任務繫結在一起,如果所有的任務成功,就提交事務,如果有一個任務失敗,就講滾回事務.ADO.Net事務通過該Transaction類實現,每個.Net Framework 資料提供程式都有自己的Transaction 類執行事務.例如,事務在SQL Server資料庫中執行,則需要引入System.Data.Sqlclient名稱空間,對應的事務物件為SQLTransaction.
執行ADO.Net事務包含四個步驟,接下來以SQLTransaction物件為例介紹:
1:呼叫SqlConnection物件的BeginTransaction()方法,建立一個SqlTransaction物件標記事務開始
2:將建立的SqlTransaction物件分配給要執行的SqlCommand的Transaction屬性
3:呼叫想對應的方法執行SQLCommand命令
4:呼叫SqlTransaction的Commit()方法完成事務,或者呼叫Rollback()方法終止事務
(注意事項:在呼叫BeginTransaction()方法開始事務之前,要開啟資料庫連線,否則將出現異常)
示例:
SqlTransaction trans = null;
SqlConnection con = new Sqlconnection("資料庫連線語句");
try
{
con.Open();
trans = con.BeginTransaction();
SqlCommand com = new SqlCommand();
//一下4步是要執行SqlParameter,如果不執行可以直接跳過使用com.CommandText="SQL語句";
com.CommandText = @"資料庫語句 條件 [email protected]變數";
SqlParameter para = new SqlParameter("變數","值");
com.Parameters.Add(para);
com.CommandText=com.CommandText;
com.Connection=con;
com.Transaction=trans;
com.ExecuteNonQuery();//執行方式自己選擇
trans.Commit();//執行提交事務
}catch
{
trans.Rollback();//如果前面有異常則事務回滾
}
finally
{
con.Close();
}