C#連接Oracle數據庫的方法


目前了解C#中連接Oracle數據庫的方法有3種,分布是微軟的System.Data.OracleClient,Oracle的Oracle.DataAccess.Client和Oracle的Oracle.ManagedDataAccess.dll(最優)

 

(1).System.Data.OracleClient

.微軟的System.Data.OracleClient可以直接引用,但是VS會提示“System.Data.OracleClient.OracleConnection”已過時,這表明微軟自己都不建議使用了,所以知道就可以了,不必使用

 

(2).Oracle.DataAccess.Client

C#使用Oracle.DataAccess.Client也叫ODP.net,他是Oracle提供的數據庫訪問類庫,其功能和效率上都有所保證,它還有一個非常方便特性:在客戶端上,可以不用安裝Oracle客戶端,直接拷貝即可使用。由於微軟在.net framework4中會將System.Data.OracleClient.dll deprecated,而且就訪問效率和速度而言,System.Data.OracleClient.dll與Oracle.DataAccess.dll相比,微軟的確實沒有oracle提供的類庫有優勢,所以我放棄了使用多年的System.Data.OracleClient.dll,取而代之的是odp.net。然而odp.net的優點不止這些,還包括:
1.不在安裝客戶端也能訪問服務器上的oracle(假設Application Server與DB Server 分開)
2.不需要配置TnsNames.Ora文件

具體的使用方法請參考這位大俠的  http://blog.csdn.net/rrrrssss00/article/details/7178515/

還有這位大俠的 http://blog.csdn.net/sumirry/article/details/46746331

如果項目要從System.Data.OracleClient.OracleConnection轉Oracle.DataAccess.Client時,只需要在oracle 安裝目錄下 找到 Oracle.DataAccess.dll添加引用,后 using Oracle.DataAccess.Client;
其他的都不用動,即可。
連接字符串中 如有 用的是 user=xxx 就改成user id=xxx把原來 Using 的System.Data.OracleClient去掉即可。

 

(3).Oracle.ManagedDataAccess.dll

重點學習最后一種Oracle.ManagedDataAccess.dll,第二種的優點很多,但是也有缺點,就是要區分用區分x86/x64版本。

下載dll和使用方法參考這位大俠的  http://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html.

使用方法:

1.dll下載:http://files.cnblogs.com/yjmyzz/Oracle.ManagedDataAccess.zip 

2.可以直接添加引用

3.使用代碼:

 1 using System;
 2 using System.Data;
 3 using Oracle.ManagedDataAccess.Client;
 4 
 5 namespace ODP.NET
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             OracleConnection conn = null;
12             try
13             {
14                 conn = OpenConn();
15                 var cmd = conn.CreateCommand();
16                 cmd.CommandText = "select * from s_awb_master where rownum=1";
17                 cmd.CommandType = CommandType.Text;
18                 var reader = cmd.ExecuteReader();
19                 while (reader.Read())
20                 {
21                     Console.WriteLine(string.Format("AwbPre:{0},AwbNo:{1}", reader["AwbPre"], reader["AwbNo"]));
22                 }
23             }
24             catch (Exception ex)
25             {
26                 Console.WriteLine(ex.Message);
27             }
28             finally
29             {
30                 CloseConn(conn);
31             }
32             Console.Read();
33         }
34 
35 
36         static OracleConnection OpenConn()
37         {
38             OracleConnection conn = new OracleConnection();
39             conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;";
40             conn.Open();
41             return conn;
42         }
43 
44         static void CloseConn(OracleConnection conn)
45         {
46             if (conn == null) { return; }
47             try
48             {
49                 if (conn.State != ConnectionState.Closed)
50                 {
51                     conn.Close();
52                 }
53             }
54             catch (Exception e)
55             {
56                 Console.WriteLine(e.Message);
57             }
58             finally
59             {
60                 conn.Dispose();
61             }
62         }
63     }
64 }

**使用方法:https://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html

摘自:https://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html

         https://www.cnblogs.com/masonlu/p/7514942.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM