新聞中心
事物是一組不可在分的Sql語句,在編程中也是很難解決的一個問題,我們這里就ADO.NET事務(wù)處理方法簡單的介紹,希望看過可以幫你解決這方面的問題。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的寧河網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
ADO.NET事務(wù)處理方法:
◆BeginTrans:開始1個事務(wù);
◆CommitTrans:提交事務(wù),將事務(wù)中的操作寫入數(shù)據(jù)源。
◆RollBackTrans:滾回事務(wù),取消操作。
#T#當同時更新多個表時,為了保證數(shù)據(jù)一致性而必須使用事務(wù),比如有兩個表,一個是支出表,一個是余額表,當支出一項費用時,支出費用增加,余額減少,需要對這兩個表同時更新,但如果不用事務(wù),倘若在更新支出表后發(fā)生錯誤,則余額表沒有更新,不合要求。這時就要把它們封存裝到一個事務(wù)里。確保多表操作的完整性。此外,也可以用它對同一個表的多步操作進行封裝,使多步操作成為單個單元。
一般地,我們在BeginTrans處加一條On Error Goto ErrNum的出錯捕獲語句,然后在錯誤處理程序中使用RollBackTrans取消事務(wù)。形如:
- cn.BeginTrans
- on Error Goto ErrNum
- …更新表1
- …更新表2
- …
- cn.CommitTrans
- Exit Sub
- ErrNum:
- cn.RollBackTrans
- msgbox //出錯提示
事務(wù)可以嵌套,由begintrans方法返回1個長整數(shù)表示當前事務(wù)是第幾層,如返回1為當前事務(wù)不包含在任何事務(wù)中。CommitTrans和 RollBackTrans結(jié)束最近的BeginTrans打開的那個事務(wù)。在程序中用begintrans開始1個事務(wù)后,應(yīng)使用 committrans或rollbacktrans方法結(jié)束,如果不用,則在程序結(jié)束后事務(wù)全部滾回,也就是說,系統(tǒng)不會自動去提交任何事務(wù)。ADO.NET事務(wù)處理方法例如:
- cn.BeginTrans
- rst.MoveNext
- cn.Execute "insert into BB values('嫖客店','aaa',0,'0','0',0,'0')"
- cn.CommitTrans
有兩種情況需要說明一下:在事務(wù)中也可能出現(xiàn)問題,導致被迫放棄事務(wù):一種情況是一個關(guān)健字段被鎖定,不能進行寫操作;另一種情況是字段值超出范圍,如字段為Integer,但實際值大于32767,字段為Text,但值字串長超過32K等,這樣會導致事務(wù)強迫放棄。
新聞名稱:輕輕松松掌握ADO.NET事務(wù)處理方法技巧
本文地址:http://www.fisionsoft.com.cn/article/djgcppi.html


咨詢
建站咨詢
