c#連接oracle的幾種方式


c#連接oracle的幾種方式

一:通過System.Data.OracleClient(需要安裝Oracle客戶端並配置tnsnames.ora)
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OracleClient;

 1 string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";
 2 OracleConnection conn = new OracleConnection(connString);
 3 try
 4 {
 5 conn.Open();
 6 MessageBox.Show(conn.State.ToString());
 7 }
 8 catch (Exception ex)
 9 {
10 ShowErrorMessage(ex.Message.ToString());
11 }
12 finally
13 {
14 conn.Close();
15 }

 

二:通過System.Data.OracleClient(需要安裝Oracle客戶端不需配置tnsnames.ora)
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OracleClient;

 1 string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
 2 OracleConnection conn = new OracleConnection(connString);
 3 try
 4 {
 5 conn.Open();
 6 MessageBox.Show(conn.State.ToString());
 7 }
 8 catch (Exception ex)
 9 {
10 ShowErrorMessage(ex.Message.ToString());
11 }
12 finally
13 {
14 conn.Close();
15 }

 

三:通過System.Data.OleDb和Oracle公司的驅動
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OleDb;

string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection conn = new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}

 

四:通過System.Data.OleDb和微軟公司的Oracle驅動
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OleDb;

 1 string connString = "Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
 2 OleDbConnection cnn = new OleDbConnection(connString);
 3 try
 4 {
 5 conn.Open();
 6 MessageBox.Show(conn.State.ToString());
 7 }
 8 catch (Exception ex)
 9 {
10 ShowErrorMessage(ex.Message.ToString());
11 }
12 finally
13 {
14 conn.Close();
15 }

 

備注:
a.XP操作系統已經安裝了微軟公司的Oracle驅動C:\Program Files\Common Files\System\Ole DB\msdaora.dll
b.該驅動需要Oracle客戶端的三個文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可

五:使用ODP連接
1. 下載安裝ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
2. 安裝完全成后會產生一序列文件。
3. 找到這個安裝目錄,打開文件夾%ORACLE_HOME%\Network\Admin在這個下面建立一個tnsnames.ora的文件,其內容可以參考其下的Sample目錄下面的配置
Oracle.RACE =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=RACE)
(SERVER=DEDICATED)
)
)
Oracle.RACE為連接字符串名稱,可以隨便取。等號后面的字符串可以在Enterprise Manager Console工具中連接數據庫后的TNS描述符中拷過來
4. 引用Oracle.DataAccess命名空間
5. using Oracle.DataAccess.Client;
6. 示例代碼:

 1 string connString = "DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP";
 2 OracleConnection conn = new OracleConnection(connString);
 3 try
 4 {
 5 conn.Open();
 6 OracleCommand cmd = new OracleCommand(cmdText,conn);
 7 OracleDataReader reader = cmd.ExecuteReader();
 8 this.DataGridView1.DataSource = reader;
 9 this.DataGridView1.DataBind();
10 }
11 catch (Exception ex)
12 {
13 ShowErrorMessage(ex.Message.ToString());
14 }
15 finally
16 {
17 conn.Close();
18 }

 

六:使用第三方驅動
第三方驅動有 Devart,下載驅動 http://www.devart.com/dotconnect/oracle/,但是是商業版,需要購買許可或破解
連接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
1. 引用Devart.Data.Oracle命名空間
2. using Devart.Data.Oracle;

 1 OracleConnection conn = new OracleConnection();
 2 conn.ConnectionString = "";
 3 conn.Unicode = true;
 4 conn.UserId = "IFSAPP";
 5 conn.Password = "IFSAPP";
 6 conn.Port = 1521;
 7 conn.Server = "127.0.0.1";
 8 conn.Sid = "RACE";
 9 try
10 {
11 conn.Open();
12 //execute queries, etc
13 }
14 catch (Exception ex)
15 {
16 ShowErrorMessage(ex.Message.ToString());
17 }
18 finally
19 {
20 conn.Close();
21 }

 

七、另外的東東

在vs2010中使用c# 連接oracle 11g:

一. 在VS2010中連接 Oracle數據庫有兩種方法:

第一種:微軟提供的連接方法 : using System.Data.OracleClient;

第二種:Oracle自己提供的方法:using Oracle.DataAccess.Client;

連接字符串:

connectionString="Password=czh;User ID=czh;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=skydream)));"
1. 微軟提供的連接方法 : using System.Data.OracleClient;

測試例程:

··1.在VS2010新建控制台應用程序(C#);

··2.右鍵、引用,在.NET中選擇System.Data.OracleClient;

··3.在程序中 using System.Data.OracleClient;

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Data.OracleClient;
 6 
 7 namespace ConsoleApplication2
 8 {
 9 class Program
10 {
11 static void Main(string[] args)
12 {
13 string connectionString;
14 string queryString;
15 
16 connectionString = "Data Source=202.200.136.125/orcl;User ID=openlab;PassWord=open123";
17 
18 queryString = "SELECT * FROM T_USER";
19 
20 OracleConnection myConnection = new OracleConnection(connectionString);
21 
22 OracleCommand myORACCommand = myConnection.CreateCommand();
23 
24 myORACCommand.CommandText = queryString;
25 
26 myConnection.Open();
27 
28 OracleDataReader myDataReader = myORACCommand.ExecuteReader();
29 
30 myDataReader.Read();
31 
32 Console.WriteLine("email: " + myDataReader["EMAIL"]);
33 
34 myDataReader.Close();
35 
36 myConnection.Close();
37 
38 }
39 }
40 }

 

2.Oracle自己提供的方法:using Oracle.DataAccess.Client;

 

前提條件:安裝oracle或者oracle client以及安裝 Oracle Client 。

··1.在VS2010新建控制台應用程序(C#);

··2.右鍵、引用,在.NET/組件中選擇Oracle.DataAccess.Client;如果找不到則選擇 瀏覽,進入到oracleclient的安裝目錄尋找 Oracle.Data.Access.dll (典型目錄為:E:\app\Administrator\product\11.2.0\client_1\ODP.NET\bin\2.x\Oracle.Data>Access.dll)

··3.程序中添加引用:using Oracle.DataAccess.Client;

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using Oracle.DataAccess.Client;
 6 
 7 namespace testConnectionOracle
 8 {
 9 class Program
10 {
11 static void Main(string[] args)
12 {
13 string connectionString;
14 string queryString;
15 
16 connectionString = "Data Source=202.200.155.123/orcl;User ID=openlab;PassWord=open123";
17 
18 queryString = "SELECT * FROM T_USER";
19 
20 OracleConnection myConnection = new OracleConnection(connectionString);
21 
22 OracleCommand myORACCommand = myConnection.CreateCommand();
23 
24 myORACCommand.CommandText = queryString;
25 
26 myConnection.Open();
27 
28 OracleDataReader myDataReader = myORACCommand.ExecuteReader();
29 
30 myDataReader.Read();
31 
32 Console.WriteLine("email: " + myDataReader["EMAIL"]);
33 
34 myDataReader.Close();
35 
36 myConnection.Close();
37 
38 }
39 }
40 }

 


免責聲明!

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



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