c#數據庫事務_第1頁
已閱讀1頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C#數據庫事務原理及實踐分類:C#2012030122:53137人閱讀評論(0)收藏舉報數據庫c#sqlserverfiledatabaseexception什么是數據庫事務什么是數據庫事務數據庫事務是指作為單個邏輯工作單元執(zhí)行的一系列操作。設想網上購物的一次交易,其付款過程至少包括以下幾步數據庫操作:更新客戶所購商品的庫存信息保存客戶付款信息可能包括與銀行系統(tǒng)的交互生成訂單并且保存到數據庫中更新用戶相關信息,例如購物數量等等

2、正常的情況下,這些操作將順利進行,最終交易成功,與交易相關的所有數據庫信息也成功地更新。但是,如果在這一系列過程中任何一個環(huán)節(jié)出了差錯,例如在更新商品庫存信息時發(fā)生異常、該顧客銀行帳戶存款不足等,都將導致交易失敗。一旦交易失敗,數據庫中所有信息都必須保持交易前的狀態(tài)不變,比如最后一步更新用戶信息時失敗而導致交易失敗,那么必須保證這筆失敗的交易不影響數據庫的狀態(tài)庫存信息沒有被更新、用戶也沒有付款,訂單也沒有生成。否則,數據庫的信息將會一片

3、混亂而不可預測。數據庫事務正是用來保證這種情況下交易的平穩(wěn)性和可預測性的技術。數據庫事務的數據庫事務的ACID屬性屬性事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復并使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性:本文將涉及到在.框架下使用C#語言操

4、縱數據庫事務的各個方面。體驗體驗SQL語言的事務機制語言的事務機制作為大型的企業(yè)級數據庫,SQLServer2000對事務提供了很好的支持。我們可以使用SQL語句來定義、提交以及回滾一個事務。如下所示的SQL代碼定義了一個事務,并且命名為“MyTransaction“(限于篇幅,本文并不討論如何編寫SQL語言程序,請讀者自行參考相關書籍):DECLARE@TranNameVAR(20)@TranName=MyTransactio

5、nBEGINTRANSACTION@TranNameGOUSEpubsGOUPDATEroyschedSETroyalty=royalty1.10WHEREtitle_idLIKEPc%GOCOMMITTRANSACTIONMyTransactionGO這里用到了SQLServer2000自帶的示例數據庫pubs,提交事務后,將為所有暢銷計算機書籍支付的版稅增加10%。打開SQLServer2000的查詢分析器,選擇pubs數據

6、庫,然后運行這段程序,結果顯而易見。可是如何在C#程序中運行呢?我們記得在普通的SQL查詢中,一般需要把查詢語句賦值給mText屬性,這里也就像普通的SQL查詢語句一樣,將這些語句賦給mText屬性即可。要注意的一點是,其中的“GO“語句標志著SQL批處理的結束,編寫SQL腳本是需要的,但是在這里是不必要的。我們可以編寫如下的程序來驗證這個想法:TranSql.csusingSystemusingSystem.DatausingSy

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論