以前用Oracle的時候,必須得裝他臃腫的客戶端,網上雖然也有提供直連Oracle的驅動,但也是要收費的,最近Oracle終於開竅了,提供了官方的全托管驅動。
這次是隨Oracle ODAC 12c 發布包中包含的oracle全托管驅動,之前Oracle已經發布了兩個Beta版本的全托管驅動,但在測試中確實也發現了一些問題,這次發布的12.1.0.1.0 貌似已經是Release正式版了,經過簡單的測試,上一個版本我所碰到的Bug已經被修復,目前未發現有什么新的問題,推薦大家使用。
下載地址:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
方法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string strConn = "User Id=test;password=test;" +
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.120.1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));" +
"Pooling=false;";
using (OracleConnection con = new OracleConnection(strConn))
{
con.Open();
string strSQL = "select * from USERS order by ID";
OracleCommand cmd = new OracleCommand(strSQL, con);
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
string line = "";
for (int i = 0; i < reader.FieldCount; i++)
{
line += reader.GetName(i).ToString() + "=" + reader.GetValue(i).ToString() + " ";
}
Console.WriteLine(line);
}
}
Console.ReadLine();
}
}
}
|
方法二:
修改連接字符串為
1
2
3
|
string strConn = "User Id=test;password=test;" +
"Data Source=192.168.120.1:1521/orcl;" +
"Pooling=false;";
|
這種寫法比較簡單,但如果有多個地址就不適用了。
方法三:
在下載的Oracle.ManagedDataAccess壓縮包中,\network\admin\sample目錄下有一個tnsnames.ora的文件,修改此文件配置數據庫的監聽信息,將該文件拷貝到應用程序根目錄下。
1
2
3
|
string strConn = "User Id=test;password=test;" +
"Data Source=test;" +
"Pooling=false;";
|