1. 程式人生 > >C# ADO.Net事務處理

C# ADO.Net事務處理

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(); }