以前用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;"; |