自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳談如何在VB.NET使用ORACLR數(shù)據(jù)庫事務(wù)

開發(fā) 后端
文章主要教你在VB.NET使用Oracle數(shù)據(jù)庫事務(wù),有詳細(xì)的9大步驟,代碼的分析和錯(cuò)誤的原因以及運(yùn)行的結(jié)果??傊戳艘院笠欢〞?huì)使用oracle。

大家都知道VB.NET,oracle,但是如何在VB.NET使用ORACLE數(shù)據(jù)庫呢,我想這個(gè)問題很多人都不知道怎么解決,在這里給大家演示一個(gè)示例吧。Oracle.DataAccess.Client 命名空間是 ODP.NET 的一部分,它包含許多類,其中有OracleConnection、OracleCommand 和 OracleTransaction。示例程序用到了這些類。

VB.NET使用ORACLR第 1 步

創(chuàng)建一個(gè) OracleConnection 對象連接到 Oracle 數(shù)據(jù)庫,然后打開該連接。
在 C# 中:

  1. OracleConnection myOracleConnection =new OracleConnection(  
  2. "User Id=store;Password=store;Data Source=ORCL"  
  3. );  
  4. myOracleConnection.Open(); 

在 VB.NET 中:

  1. Dim myOracleConnection As New OracleConnection( _  
  2. "User Id=store;Password=store;Data Source=ORCL")  
  3. myOracleConnection.Open() 

User Id 和 Password 屬性指定了您所要連接到的模式的數(shù)據(jù)庫用戶和口令。Data Source 屬性指定了數(shù)據(jù)庫的 Oracle Net 服務(wù)名稱;初始數(shù)據(jù)庫的默認(rèn)服務(wù)名稱為 ORCL。如果您使用的不是初始數(shù)據(jù)庫,或者您的服務(wù)名稱不同,那么您需要在程序中修改 Data Source 屬性的設(shè)置。

VB.NET使用ORACLR第 2 步

創(chuàng)建一個(gè) OracleTransaction 對象,然后調(diào)用 OracleConnection 對象的 BeginTransaction() 方法啟動(dòng)事務(wù)。

在 C# 中:

  1. OracleTransaction myOracleTransaction =  
  2. myOracleConnection.BeginTransaction();  
  3. In VB.NET:  
  4. Dim myOracleTransaction As OracleTransaction = _ 
  5. myOracleConnection.BeginTransaction() 

VB.NET使用ORACLR第3 步

創(chuàng)建一個(gè) OracleCommand 對象,用于存儲(chǔ) SQL 語句。

在 C# 中:

  1. OracleCommand myOracleCommand = myOracleConnection.CreateCommand();    

在 VB.NET 中:

  1. Dim myOracleCommand As OracleCommand =  
  2. myOracleConnection.CreateCommand    

因?yàn)?OracleCommand 對象使用 OracleConnection 對象的 CreateCommand() 方法創(chuàng)建的,所以它自動(dòng)使用在第 2 步中為 OracleConnection 對象設(shè)置的事務(wù)。

VB.NET使用ORACLR第 4 步

將 OracleCommand 對象的 CommandText 屬性設(shè)為向表 product_types 中添加一行的第一條 INSERT 語句。
在 C# 中:

  1. myOracleCommand.CommandText =  
  2. "INSERT INTO product_types (" +  
  3. "  product_type_id, name" +  
  4. ") VALUES (" +  
  5. "  3, 'Magazine'" +  
  6. ")"; 

 在 VB.NET 中:

  1. myOracleCommand.CommandText = _ 
  2. "INSERT INTO product_types (" & _  
  3. "  product_type_id, name" & _  
  4. ") VALUES (" & _  
  5. "  3, 'Magazine'" & _  
  6. ")" 

VB.NET使用ORACLR第 5 步
使用 OracleCommand 對象的 ExecuteNonQuery() 方法運(yùn)行 INSERT 語句。
在 C# 中:

  1. myOracleCommand.ExecuteNonQuery(); 

在 VB.NET 中:

  1. myOracleCommand.ExecuteNonQuery(); 

VB.NET使用ORACLR第 6 和第 7 步

將 OracleCommand 對象的 CommandText 屬性設(shè)為向表 Products 中添加一行的第二條 INSERT 語句,并運(yùn)行它。
在 C# 中:

  1. myOracleCommand.CommandText =  
  2. "INSERT INTO products (" +  
  3. "  product_id, product_type_id, name, description, price" +  
  4. ") VALUES (" +  
  5. "  5, 3, 'Oracle Magazine', 'Magazine about Oracle', 4.99" +  
  6. ")";  
  7. myOracleCommand.ExecuteNonQuery();  

在 VB.NET 中:

  1. myOracleCommand.CommandText = _ 
  2. "INSERT INTO products (" & _  
  3. "  product_id, product_type_id, name, description, price" & _  
  4. ") VALUES (" & _  
  5. "  5, 3, 'Oracle Magazine', 'Magazine about Oracle', 4.99" & _  
  6. ")"  
  7. myOracleCommand.ExecuteNonQuery() 

VB.NET使用ORACLR第 8 步

使用 OracleTransaction 對象的 Commit() 方法提交數(shù)據(jù)庫中的事務(wù)。
在 C# 中:

  1. myOracleTransaction.Commit(); 

在 VB.NET 中:

  1. myOracleTransaction.Commit() 

在完成 Commit() 方法之后,由 INSERT 語句添加的兩行將在數(shù)據(jù)庫中永久記錄。


VB.NET使用ORACLR第 9 步

使用 Close() 方法關(guān)閉 OracleConnection 對象。

 在 C# 中:

  1. myOracleConnection.Close(); 

在 VB.NET 中:

  1. myOracleConnection.Close() 


編譯并運(yùn)行示例程序

要編譯 C# 示例程序,您可以使用 csc 命令運(yùn)行 C# 編譯器。因?yàn)槌绦蚴褂?Oracle Data Access DLL,所以您應(yīng)使用 /r 選項(xiàng)指定該 DLL 的完整路徑,例如:

注意:您需要用您計(jì)算機(jī)上的相應(yīng)路徑來替換該 DLL 的路徑。此外,如果您的計(jì)算機(jī)找不到 csc 編譯器,那么您可能需要運(yùn)行 Microsoft sdkvars.bat 腳本來首先設(shè)置 .NET SDK 的環(huán)境變量;您可以在安裝 .NET SDK 的 bin 目錄中找到該腳本。

如果您遇到以下錯(cuò)誤:

  1. Example1.cs(10,7):error CS0246:The type or namespace name 'Oracle'  
  2. could not be found (are you missing a using   
  3. directive or an assembly reference?) 

這說明您沒有在編譯命令中正確指定 Oracle Data Access DLL。(有關(guān)設(shè)置的信息,請參閱 John Paul Cook 的技術(shù)文章“在 Oracle 數(shù)據(jù)庫上構(gòu)建 .NET 應(yīng)用程序”。)

下面是用于編譯 VB.NET 程序的等價(jià)命令:

  1. vbc TransExample1.vb /r:C:\oracle\product\10.1.0\  
  2. Client_1\bin\Oracle.DataAccess.dll /r:system.dll /r:system.data.dll    

 接下來,輸入以下命令,運(yùn)行示例:

  1. An exception was thrown  
  2. Message = ORA-12514:TNS:listener does not currently know  
  3. of service requested in connect descriptor 

您將看到程序的輸出。不過,如果您遇到類似以下的異常

這說明 OracleConnection 對象的連接字符串中的 Data Source 的設(shè)置不正確。您應(yīng)當(dāng)咨詢您的 DBA 或查閱 Oracle Net 文檔以獲得更多詳細(xì)信息。

如果您使用的是 VS .NET,那么您可以遵循以下指示來編譯和運(yùn)行 C# 程序 TransExample1.cs:
創(chuàng)建一個(gè)新的 C# 控制臺(tái)應(yīng)用程序。File>New Project,然后選擇 Visual C# Projects,Console Application。
將項(xiàng)目命名為 TransExample1。用 TransExample1.cs 中的代碼替換 VS .NET 生成的所有代碼。選擇 Project>Add Reference 添加對 Oracle.DataAccess.dll 的引用,然后瀏覽至您安裝 ODP.NET 的目錄(在我的計(jì)算機(jī)上,它是 C:\oracle\product\10.1.0\Client_1\bin\Oracle.DataAccess.dll),然后雙擊 Oracle.DataAccess.dll。

選擇 Debug>Start without Debugging 運(yùn)行該程序。要編譯和運(yùn)行 TransExample1.vb,您可以執(zhí)行類似的一系列步驟,但第 1 步應(yīng)選擇一個(gè) Visual Basic 控制臺(tái)應(yīng)用程序,并在第 3 步用 TransExample1.vb 中的代碼替換生成的代碼。

查看程序的運(yùn)行結(jié)果

當(dāng)您運(yùn)行完 C# 或 VB .NET 程序時(shí),您可以在 SQL*Plus 中使用以下 SELECT 語句查看事務(wù)的結(jié)果:

  1. SELECT p.product_id, p.product_type_id, pt. name, p.name, p.description, p.price  
  2. FROM products p, product_types pt  
  3. WHERE p.product_type_id = pt.product_type_id  
  4. AND p.product_id = 5;  
  5. 您將看到以下結(jié)果: PRODUCT_ID PRODUCT_TYPE_ID NAME       NAME  
  6. ---------- --------------- ---------- -----------------------  
  7. DESCRIPTION                                             PRICE  
  8. -------------------------------------------------- ----------  
  9. 5 3 Magazine   Oracle Magazine  
  10. Magazine about Oracle                                    4.99   

【編輯推薦】

  1. 介紹VB.NET繪圖方法的三個(gè)方面
  2. 突破VB.NET命名空間兩大難關(guān)
  3. 演示VB.NET類定義全過程
  4. VB.NET類對象語法概括
  5. 講述VB.NET實(shí)現(xiàn)拖動(dòng)圖片
責(zé)任編輯:田樹 來源: 中科軟件園
相關(guān)推薦

2009-10-23 17:03:18

VB.NET事件編程

2009-10-26 13:13:17

VB.NET編碼規(guī)范

2009-10-09 15:20:26

VB.NET連接數(shù)據(jù)庫

2009-10-28 17:08:57

VB.NET數(shù)據(jù)庫開發(fā)

2009-10-28 17:00:30

VB.NET數(shù)據(jù)庫

2009-10-13 17:31:50

VB.NET Acce

2010-01-08 10:37:50

VB.NET數(shù)據(jù)庫

2009-11-11 11:33:08

VB.NET線程訪問數(shù)

2010-01-12 10:40:58

VB.NET數(shù)據(jù)庫壓縮

2009-10-28 16:47:26

VB.NET訪問數(shù)據(jù)庫

2010-01-15 19:24:42

2010-01-15 18:24:14

VB.NET打開Not

2009-10-28 17:24:19

VB.NET介紹

2010-01-18 19:21:51

VB.NET存取數(shù)據(jù)庫

2010-01-13 15:01:13

VB.NET操作MyS

2010-01-12 09:51:07

VB.NET操作dbf

2009-01-19 09:14:31

.NETMySQLMySql驅(qū)動(dòng)包

2010-01-11 16:04:10

VB.NET使用wit

2009-10-14 17:08:44

VB.NET使用Fil

2009-10-26 15:57:07

VB.NET使用Ora
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號