詳細介紹說明ADO.NET命令處理
在進行學習ADO.NET命令 ,你也許會遇到ADO.NET命令的編寫上的問題,下面就進行對ADO.NET命令處理的先關要領,當某一數據發生變化后,有關的數據不能及時被更新,造成數據不一致,以至發生嚴重不正確。
例如在一個銷售系統里,通過帳單處理模塊完成對銷售表的數據處理,客戶端銷售人員已經將庫存貨品銷售出去,但與銷售表有關的庫存表尚未及時更新,結果娶她銷售人員再讀取庫存數據就會出現數據不一致的現象。
為此,在數據庫基礎理論中我們引入事務的概念。所謂事務就是這樣的一系列操作,這些操作被視為一個操作序列,要么全做,要么全部做,是一個不可分割的程序單元。在數據庫數據處理中經常會發生數據更新事件,為了保證數據操作的安全與一致。#t#
大型數據庫服務器都支持事務處理,以保證數據更新在可控的范圍內執行 。ADO.NET命令通過Connection對象的BeginTransaction()要領實現對事務處理的支持,該要領返回一個實現IDbTransaction接口的對象,而該對象是在System.Data中被解釋的。
ADO.NET命令
調用Connection對象的BeginTransaction()要領,返回的是一個DbTransaction對象。DbTransaction對象常用的事務處理命令包括下面三個:
◆nBegin:在執行事務處理中的任何操作之前,必須運用 Begin命令來開始事務處理;
◆nCommit:在成功將所有修改都存儲于數據庫時,才算是提交了事務處理;
◆nRollback:由于在事務處理期間某個操作失敗,而取消事務處理已做的所有修改,這時將發生回滾;
不同命名空間里的DbTransaction類名稱是不同,表示也不同。參見表:類說明ADO.NET命令表示對Odbc數據源執行 的SQL 事務處理。 OleDbTransaction 表示對OleDb數據源執行 的SQL事務處理。
OracleTransaction 表示對Oracle數據庫執行 的事務處理。 SqlTransaction 表示要對SQL Server數據庫執行 的Transact-SQL事務處理。表 DbTransaction類在不同命名空間里的表在后面的內容中,我們主要討論SqlTransaction對象。