成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

概括VB.NET使用OracleTransaction

開發 后端
這里介紹VB.NET使用OracleTransaction類的一個對象來表示一個事務。OracleTransaction類包含多個屬性,其中的兩個為Connection和IsolationLevel。

經過長時間學習VB.NET使用OracleTransaction,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。數據庫事務是由一組SQL語句組成的一個邏輯工作單元。您可以把事務看作是一組不可分的SQL語句,這些語句作為一個整體***記錄在數據庫中或一并撤銷。比如在銀行帳戶之間轉移資金:一條UPDATE語句將從一個帳戶的資金總數中減去一部分,另一條UPDATE語句將把資金加到另一個帳戶中。減操作和加操作必須***記錄在數據庫中,或者必須一并撤銷—否則將損失資金。這個簡單的示例僅使用了兩條UPDATE語句,但一個更實際的事務可能包含許多INSERT、UPDATE和DELETE語句。

要***記錄一個事務中的SQL語句的結果,您可以通過COMMIT語句來執行提交。要撤銷SQL語句的結果,您可以使用ROLLBACK語句來執行回滾,這會把所有的行重設為它們原來的狀態。只要您事先沒有與數據庫斷開,則您在執行回滾之前所做的任何修改都將被撤銷。您還可以設置一個保存點,以便將事務回滾至該特定的點,同時保持事務中的其他語句原封不動。

使用數據庫事務(主要針對VB.NET)

您可以VB.NET使用OracleTransaction類的一個對象來表示一個事務。OracleTransaction類包含多個屬性,其中的兩個為Connection(指定與事務關聯的數據庫連接)和IsolationLevel(指定事務隔離級別)

Connection,指定與該事務關聯的OracleConnection對象;
IsolationLevel,指定該事務的IsolationLevel;
枚舉類型,用于對事物的鎖定,取值有Chaos、ReadCommited、ReadUncommited、RepeatableRead、Serializable、Unspecified。

應用程序通過針對OracleConnection對象調用BeginTransaction來創建OracleTransaction對象。對OracleTransaction對象執行與該事務關聯的所有后續操作(例如提交或中止該事務)。
Commit:提交SQL數據庫事務;
Rollback:從掛起狀態回滾事務;
您還可以使用Save()在事務中設置一個保存點。

下面的示例創建一個OracleConnection和一個OracleTransaction。它還演示了如何使用BeginTransaction、Commit和Rollback方法。(這是MSDN里的范例)需要注意的是,這些操作需要引入命名空間:Oracle.DataAcess.ClientOracle.DataAccess.Client命名空間是ODP.NET的一部分,它包含許多類,其中有OracleConnection、OracleCommand和OracleTransaction。示例程序就用到了這些類。

事務操作

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

在 .NET 程序中設置事務保存點

正如本文前面所提到的那樣,您可以設置一個保存點,以便將事務回滾至該特定的點,同時保持事務中的其他語句原封不動。您可以使用 OracleTransaction 類的 Save() 方法在事務中設置保存點。

如果您有一個非常長的事務并且希望能夠僅回滾到某個特定的時間點,那么您可能要使用保存點。例如,您可能想對 10 個產品做一些更改,然后設置一個保存點,然后再對另 10 個產品做更改;如果您在進行第二批更改時出現了錯誤,那么您可以回滾至保存點,使您的***批更改原封不動。

VB.NET使用OracleTransaction對象需要注意的幾點:

1)你需要在你整個事務執行中只能有***OracleConnection ,OracleCommand,OracleTransaction,也就是說如果你事務處理過程中如果需要與數據庫的操作都只能在這***的Command中執行,類似于:

  1. imgCommand.CommandText = sSQL 
  2. imgCommand.ExecuteNonQuery()或其他操作 

若你新建一個連接執行其他數據庫操作的話,整個事務過程就會拋出異常

2)如果你需要在你SQL語句中加入參數,則你必須在你執行完提交或相關數據庫操作之后將其Command的參數清空。

【編輯推薦】

  1. 詳談VB.NET編碼規范經驗
  2. 描述VB.NET工程轉換成步驟
  3. 講述C#與VB.NET間移植的技巧
  4. 分享個人總結VB.NET多線程
  5. 剖析VB.NET TextBox控件
責任編輯:佚名 來源: 博客園
相關推薦

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-12 16:51:28

VB.NET使用Ora

2009-10-14 14:04:29

VB.NET創建Web

2009-10-13 14:50:59

VB.NET Envi

2009-10-14 10:19:57

VB.NET Doma

2009-10-15 17:50:48

VB.NET Spli

2009-10-28 10:51:32

VB.NET默認屬性

2009-11-03 10:00:20

VB.NET New方

2009-10-14 13:15:09

VB.NET數據綁定

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-14 16:46:25

VB.NET OnSt

2009-10-27 11:32:42

VB.NET Disp

2009-10-23 14:06:07

VB.NET類對象

2009-11-03 10:51:33

VB.NET共享

2009-10-21 10:05:30

VB.NET運行環境

2009-11-02 09:21:04

VB.NET文件系統

2009-11-02 17:49:05

VB.NET抽象類

2009-10-29 16:23:42

VB.NET實現IEn

2009-10-28 14:44:43

VB.NET Name

2009-10-16 09:08:35

VB.NET獲取網卡地
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美性影院 | 色久在线| 日本黄色大片免费 | 久久久精品网站 | 中文字幕在线看第二 | 亚洲一区欧美 | 日韩在线91 | 国产精品一区二区视频 | 国产精品久久久久aaaa九色 | 男女视频免费 | 99久久婷婷国产综合精品电影 | aⅴ色国产 欧美 | 国内精品视频在线 | 91免费看片 | 亚洲精品久久久蜜桃网站 | 亚洲高清视频一区二区 | 午夜精品在线观看 | 亚洲成人精品国产 | 亚洲综合色婷婷 | 国产成人精品一区二区三区网站观看 | 亚洲小说图片 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 亚洲精品女优 | 国产精品96久久久久久 | 国产成人免费网站 | 午夜小视频在线观看 | 99精品免费视频 | 久草在线 | 麻豆changesxxx国产 | 国产精品久久久 | 亚洲精品一区中文字幕乱码 | 亚州综合一区 | 久久婷婷国产麻豆91 | 一道本不卡视频 | 波多野结衣一区二区三区 | 2019天天操| 欧美精品日韩精品国产精品 | 日本成人午夜影院 | 午夜寂寞影院列表 | 天天操天天射综合 | 九九久久久 |