版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C#數(shù)據(jù)庫事務(wù)原理及實(shí)踐分類:C#2012030122:53137人閱讀評論(0)收藏舉報數(shù)據(jù)庫c#sqlserverfiledatabaseexception什么是數(shù)據(jù)庫事務(wù)什么是數(shù)據(jù)庫事務(wù)數(shù)據(jù)庫事務(wù)是指作為單個邏輯工作單元執(zhí)行的一系列操作。設(shè)想網(wǎng)上購物的一次交易,其付款過程至少包括以下幾步數(shù)據(jù)庫操作:更新客戶所購商品的庫存信息保存客戶付款信息可能包括與銀行系統(tǒng)的交互生成訂單并且保存到數(shù)據(jù)庫中更新用戶相關(guān)信息,例如購物數(shù)量等等
2、正常的情況下,這些操作將順利進(jìn)行,最終交易成功,與交易相關(guān)的所有數(shù)據(jù)庫信息也成功地更新。但是,如果在這一系列過程中任何一個環(huán)節(jié)出了差錯,例如在更新商品庫存信息時發(fā)生異常、該顧客銀行帳戶存款不足等,都將導(dǎo)致交易失敗。一旦交易失敗,數(shù)據(jù)庫中所有信息都必須保持交易前的狀態(tài)不變,比如最后一步更新用戶信息時失敗而導(dǎo)致交易失敗,那么必須保證這筆失敗的交易不影響數(shù)據(jù)庫的狀態(tài)庫存信息沒有被更新、用戶也沒有付款,訂單也沒有生成。否則,數(shù)據(jù)庫的信息將會一片
3、混亂而不可預(yù)測。數(shù)據(jù)庫事務(wù)正是用來保證這種情況下交易的平穩(wěn)性和可預(yù)測性的技術(shù)。數(shù)據(jù)庫事務(wù)的數(shù)據(jù)庫事務(wù)的ACID屬性屬性事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復(fù)并使應(yīng)用程序更加可靠。一個邏輯工作單元要成為事務(wù),必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性:本文將涉及到在.框架下使用C#語言操
4、縱數(shù)據(jù)庫事務(wù)的各個方面。體驗(yàn)體驗(yàn)SQL語言的事務(wù)機(jī)制語言的事務(wù)機(jī)制作為大型的企業(yè)級數(shù)據(jù)庫,SQLServer2000對事務(wù)提供了很好的支持。我們可以使用SQL語句來定義、提交以及回滾一個事務(wù)。如下所示的SQL代碼定義了一個事務(wù),并且命名為“MyTransaction“(限于篇幅,本文并不討論如何編寫SQL語言程序,請讀者自行參考相關(guān)書籍):DECLARE@TranNameVAR(20)@TranName=MyTransactio
5、nBEGINTRANSACTION@TranNameGOUSEpubsGOUPDATEroyschedSETroyalty=royalty1.10WHEREtitle_idLIKEPc%GOCOMMITTRANSACTIONMyTransactionGO這里用到了SQLServer2000自帶的示例數(shù)據(jù)庫pubs,提交事務(wù)后,將為所有暢銷計算機(jī)書籍支付的版稅增加10%。打開SQLServer2000的查詢分析器,選擇pubs數(shù)據(jù)
6、庫,然后運(yùn)行這段程序,結(jié)果顯而易見。可是如何在C#程序中運(yùn)行呢?我們記得在普通的SQL查詢中,一般需要把查詢語句賦值給mText屬性,這里也就像普通的SQL查詢語句一樣,將這些語句賦給mText屬性即可。要注意的一點(diǎn)是,其中的“GO“語句標(biāo)志著SQL批處理的結(jié)束,編寫SQL腳本是需要的,但是在這里是不必要的。我們可以編寫如下的程序來驗(yàn)證這個想法:TranSql.csusingSystemusingSystem.DatausingSy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c#連接數(shù)據(jù)庫
- c#數(shù)據(jù)庫編程添加刪除記錄
- c#數(shù)據(jù)庫編程_添加刪除記錄
- c#使用sqldmo操作數(shù)據(jù)庫
- 賓館管理系統(tǒng)c#數(shù)據(jù)庫課程設(shè)計
- 在線論壇系統(tǒng)數(shù)據(jù)庫原理課程設(shè)計c#
- 聯(lián)邦數(shù)據(jù)庫事務(wù)研究.pdf
- 數(shù)據(jù)庫事務(wù)和鎖的詳解
- 基于C#語言與數(shù)據(jù)庫的微波自動測試系統(tǒng)設(shè)計.pdf
- c_連接access數(shù)據(jù)庫
- 在.net中如何使用oracle數(shù)據(jù)庫事務(wù)
- 網(wǎng)格數(shù)據(jù)庫中事務(wù)提交協(xié)議研究.pdf
- 基于TUXEDO事務(wù)的數(shù)據(jù)庫系統(tǒng).pdf
- 分布式數(shù)據(jù)庫事務(wù)支持.pdf
- 數(shù)據(jù)庫檢索acs數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設(shè)計---數(shù)據(jù)庫
- 實(shí)時內(nèi)存數(shù)據(jù)庫的事務(wù)調(diào)度與數(shù)據(jù)恢復(fù)研究.pdf
- 移動數(shù)據(jù)庫事務(wù)模型的研究及實(shí)現(xiàn).pdf
- 主動數(shù)據(jù)庫中嵌套事務(wù)的并行處理.pdf
- NXD數(shù)據(jù)庫事務(wù)及并發(fā)機(jī)制的研究.pdf
評論
0/150
提交評論