首頁歷史 > 正文

.Net 中的事務處理

2022-03-02由 江流兒107 發表于 歷史

在應用程式的資料處理過程中,經常會遇到一種情況:當某一資料發生變化後,相關的資料不能及時被更新,造成資料不一致,以致發生嚴重錯誤。例如在一個銷售系統組,透過賬單處理模組完成對銷售表的資料處理,客戶端銷售人員己經將庫存貨品銷售出去,但與銷售表相關的庫存表尚未及時更新,結果其她銷售人員再讀取庫存資料時就會出現資料小一致的現象。

為此,在資料庫基礎理論中我們引入事務的概念,所謂事務就是這樣的一系列操作,這此操們被視為一個操作序列,要麼全做,要麼全不做,是一個不可分割的程式單元。在資料庫處理資料中經常會發生資料更新事件。為了保證資料操作的安全與一致,大型資料庫伺服器都支援事務處理,以保il證資料更新在可控的範圍l內進行。ADO。NET透過Connection物件的BeginTransactionl()方法實現對事務處理的支援,該方法返回一個實現IDbTransaction介面的物件,而該物件是在System。Data中被定義的。

1。事務處理命令

呼叫Connection物件的BeginTransaction()方法。返回的是一個DbTransaction對像。DbTransaction物件常用的事務處理命令包括以下3個:

(1)Begin:在執行事務處理中的任何操作前,必須使用Begin命令來開始事務處理。

(2)Commit:成功將所有修改都儲存於數鋸庫中,才算是提交了事務處理。

(3)Rollback:由於在事務處理期間某個操作失敗,而取消事務處理己做的所有修改,這時將發生回滾。

不同名稱空間的DbTransaction類名稱不同,表示也不同,如表:

.Net 中的事務處理

2。 SqlTransaction物件的使用

SqlTransaction物件表示要對資料來源進行的事務處理,其常用的屬性是 Connection。Connection屬性用來獲取與該事務關聯的SqIConnection物件,或者如果該事務不再生效,則為空引用。SqlTransaction物件常用的方法有Save(),Commit()和Rollback(),其中Save()方法在事務中建立儲存點(它可用於回滾事務的一部分),並指定儲存點名稱;Commit()方法用來提交資料庫事務,Rollback()方法從掛起狀態回滾事務。

.Net 中的事務處理

.Net 中的事務處理

.Net 中的事務處理

頂部