日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
VB.NET事務(wù)處理簡(jiǎn)單方法推薦

VB.NET事務(wù)處理的操作方法可以有很多種,我們?cè)?jīng)也為大家介紹過(guò)一些實(shí)用的方法,那么今天將會(huì)給大家?guī)?lái)的是通過(guò)OracleTransaction來(lái)實(shí)現(xiàn)的VB.NET事務(wù)處理相關(guān)操作,希望可以對(duì)大家有所幫助。#t#

專(zhuān)注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)江城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

有關(guān)數(shù)據(jù)庫(kù)事務(wù)是由一組 SQL 語(yǔ)句組成的一個(gè)邏輯工作單元。您可以把事務(wù)看作是一組不可分的 SQL 語(yǔ)句,這些語(yǔ)句作為一個(gè)整體永久記錄在數(shù)據(jù)庫(kù)中或一并撤銷(xiāo)。比如在銀行帳戶之間轉(zhuǎn)移資金:一條 UPDATE語(yǔ)句將從一個(gè)帳戶的資金總數(shù)中減去一部分,另一條 UPDATE語(yǔ)句將把資金加到另一個(gè)帳戶中。減操作和加操作必須永久記錄在數(shù)據(jù)庫(kù)中,或者必須一并撤銷(xiāo) — 否則將損失資金。這個(gè)簡(jiǎn)單的示例僅使用了兩條 UPDATE 語(yǔ)句,但一個(gè)更實(shí)際的事務(wù)可能包含許多 INSERT、UPDATE和 DELETE 語(yǔ)句。

要永久記錄一個(gè)事務(wù)中的 SQL 語(yǔ)句的結(jié)果,您可以通過(guò) COMMIT 語(yǔ)句來(lái)執(zhí)行提交。要撤銷(xiāo) SQL 語(yǔ)句的結(jié)果,您可以使用 ROLLBACK 語(yǔ)句來(lái)執(zhí)行回滾,這會(huì)把所有的行重設(shè)為它們?cè)瓉?lái)的狀態(tài)。只要您事先沒(méi)有與數(shù)據(jù)庫(kù)斷開(kāi),則您在執(zhí)行回滾之前所做的任何修改都將被撤銷(xiāo)。您還可以設(shè)置一個(gè)保存點(diǎn),以便將事務(wù)回滾至該特定的點(diǎn),同時(shí)保持事務(wù)中的其他語(yǔ)句原封不動(dòng)。

VB.NET事務(wù)處理中如何使用數(shù)據(jù)庫(kù)事務(wù)(主要針對(duì)VB.NET)

您可以使用 OracleTransaction 類(lèi)的一個(gè)對(duì)象來(lái)表示一個(gè)事務(wù)。OracleTransaction 類(lèi)包含多個(gè)屬性,其中的兩個(gè)為 Connection(指定與事務(wù)關(guān)聯(lián)的數(shù)據(jù)庫(kù)連接)和 IsolationLevel(指定事務(wù)隔離級(jí)別)

Connection,指定與該事務(wù)關(guān)聯(lián)的OracleConnection對(duì)象;

IsolationLevel,指定該事務(wù)的IsolationLevel;枚舉類(lèi)型,用于對(duì)事物的鎖定,取值有Chaos、ReadCommited、ReadUncommited、RepeatableRead、Serializable、Unspecified。

應(yīng)用程序通過(guò)針對(duì)OracleConnection對(duì)象調(diào)用 BeginTransaction 來(lái)創(chuàng)建OracleTransaction對(duì)象。對(duì)OracleTransaction對(duì)象執(zhí)行與該事務(wù)關(guān)聯(lián)的所有后續(xù)操作(例如提交或中止該事務(wù))

Commit:提交SQL數(shù)據(jù)庫(kù)事務(wù);

Rollback :從掛起狀態(tài)回滾事務(wù);

您還可以使用 Save() 在事務(wù)中設(shè)置一個(gè)保存點(diǎn)。

下面的示例創(chuàng)建一個(gè) OracleConnection 和一個(gè) OracleTransaction。它還演示了如何使用 BeginTransaction、Commit 和 Rollback 方法。(這是MSDN里的范例)

需要注意的是,這些VB.NET事務(wù)處理操作需要引入命名空間: Oracle.DataAcess.Client

Oracle.DataAccess.Client 命名空間是 ODP.NET 的一部分,它包含許多類(lèi),其中有 OracleConnection、OracleCommand 和 OracleTransaction。示例程序就用到了這些類(lèi)。

VB.NET事務(wù)處理的事務(wù)操作

 
 
 
  1. Public Sub RunOracleTransaction()  
  2. Sub RunOracleTransaction
    (myConnString As String)   
  3. Dim myConnection As New 
    OracleConnection(myConnString)
     myConnection.Open()   
  4. Dim myCommand As OracleCommand 
    = myConnection.CreateCommand()   
  5. Dim myTrans As OracleTransaction 
    ' Start a local transaction   
  6. myTrans = myConnection.Begin
    Transaction(IsolationLevel.
    ReadCommitted)   
  7. ' Assign transaction object for 
    a pending local transaction   
  8. myCommand.Transaction = myTrans Try  
  9. myCommand.CommandText = "INSERT 
    INTO Dept (DeptNo, Dname, Loc)   
  10. values (50, 'TECHNOLOGY', 'DENVER')"  
  11. myCommand.ExecuteNonQuery()   
  12. myCommand.CommandText = "INSERT 
    INTO Dept (DeptNo, Dname, Loc)   
  13. values (60, 'ENGINEERING', 
    'KANSAS CITY')"  
  14. myCommand.ExecuteNonQuery()   
  15. myTrans.Commit()   
  16. Console.WriteLine("Both 
    records are written to database.")   
  17. Catch e As Exception 
    myTrans.Rollback()   
  18. Console.WriteLine(e.ToString())   
  19. Console.WriteLine("Neither 
    record was written to database.")   
  20. Finally   
  21. myConnection.Close()   
  22. End Try   
  23. End Sub  

在 .NET 程序中設(shè)置事務(wù)保存點(diǎn)

正如本文前面所提到的那樣,您可以設(shè)置一個(gè)保存點(diǎn),以便將事務(wù)回滾至該特定的點(diǎn),同時(shí)保持事務(wù)中的其他語(yǔ)句原封不動(dòng)。您可以使用 OracleTransaction 類(lèi)的 Save() 方法在事務(wù)中設(shè)置保存點(diǎn)。

如果您有一個(gè)非常長(zhǎng)的事務(wù)并且希望能夠僅回滾到某個(gè)特定的時(shí)間點(diǎn),那么您可能要使用保存點(diǎn)。例如,您可能想對(duì) 10 個(gè)產(chǎn)品做一些更改,然后設(shè)置一個(gè)保存點(diǎn),然后再對(duì)另 10 個(gè)產(chǎn)品做更改;如果您在進(jìn)行第二批更改時(shí)出現(xiàn)了錯(cuò)誤,那么您可以回滾至保存點(diǎn),使您的第一批更改原封不動(dòng)。

使用OracleTransaction對(duì)象進(jìn)行VB.NET事務(wù)處理需要注意的幾點(diǎn):

1)你需要在你整個(gè)事務(wù)執(zhí)行中只能有唯一OracleConnection ,OracleCommand,OracleTransaction,也就是說(shuō)如果你事務(wù)處理過(guò)程中如果需要與數(shù)據(jù)庫(kù)的操作都只能在這唯一的Command中執(zhí)行,類(lèi)似于:

imgCommand.CommandText = sSQL

imgCommand.ExecuteNonQuery()或其他操作

若你新建一個(gè)連接執(zhí)行其他數(shù)據(jù)庫(kù)操作的話,整個(gè)事務(wù)過(guò)程就會(huì)拋出異常

2)如果你需要在你SQL語(yǔ)句中加入?yún)?shù),則你必須在你執(zhí)行完提交或相關(guān)數(shù)據(jù)庫(kù)操作之后將其Command的參數(shù)清空,下邊舉一個(gè)實(shí)際的項(xiàng)目里的事務(wù)函數(shù):

事務(wù)函數(shù)

 
 
 
  1. ''' < summary> ''' 
    保存熱點(diǎn)文本文件信息到數(shù)據(jù)庫(kù) '''  
  2. < /summary>   
  3. Private Function SaveTextFile()  
  4. Function SaveTextFile() As Boolean   
  5. Dim sSQl As String sSQl = "select 
    type_id from sys_file_type where
     file_extname='TXT'"   
  6. Try imgCommand.CommandText = sSQl   
  7. Dim typeID As Int32 = Convert.
    ToInt32(imgCommand.ExecuteScalar())   
  8. '文件類(lèi)型 '讀取文本信息   
  9. Dim Textblob() As Byte = GetText()   
  10. sSQl = "insert   
  11. into t_watch_textcontent
    (image_id,text_content,type_id)  
  12. values(:imageid,:textcontent,:typeid)"   
  13. '增添SQL參數(shù) Dim Param As 
    OracleClient.OracleParameter  
  14. Param = New OracleClient.
    OracleParameter("imageid", sNewImageID)   
  15. imgCommand.Parameters.Add(Param)   
  16. Param = New OracleClient.
    OracleParameter("textcontent", Textblob)   
  17. imgCommand.Parameters.Add(Param)   
  18. Param = New OracleClient.
    OracleParameter("typeid", typeID)   
  19. imgCommand.Parameters.Add(Param)   
  20. '提交信息 imgCommand.CommandText = sSQl   
  21. If imgCommand.ExecuteNonQuery() > 0   
  22. Then bResult = True   
  23. '關(guān)鍵是這里,需要你手動(dòng)清除參數(shù)   
  24. imgCommand.Parameters.Clear()   
  25. End If   
  26. Catch ex As Exception 
    Me.ExceptionMessage = ex   
  27. bResult = False   
  28. End   
  29. Try Return bResult   
  30. End Function  

VB.NET事務(wù)處理的相關(guān)操作方法就為大家介紹到這里。


新聞名稱(chēng):VB.NET事務(wù)處理簡(jiǎn)單方法推薦
分享URL:http://www.5511xx.com/article/cdcedcj.html