「ODP.NET Managed」發佈已經有一段時間了,近期正好有一個新項目,想嘗試用一下,參考園子裏的文章:《.NET Oracle Developer的福音——ODP.NET Managed正式推出》 到Oracle官網 下載 ODP.NET_Managed121010.zip 大約1.9M,解壓後目錄結構以下:html
核心的dll,就是common目錄下的Oracle.ManagedDataAccess.dll,不象ODP.NET之前的版本,此次終於不用區分x86/x64版本了,無論是32位仍是64位,都是同一個dll。oracle
至於manged/x6四、managed/x86這二個目錄,是用來向.NET x86或.NET x64的GAC註冊程序集的,運行相關的configure.bat後,會自動將common中的Oracle.ManagedDataAccess.dll放入GAC,這樣在vs中添加引用時,能自動找到GAC中的相關命名空間spa
運行了configure.bat的機器上,應用程序的bin目錄下沒必要包括Oracle.ManagedDataAccess.dll,就能正常運行了。code
注:configure.bat這一步是可選的,添加引用時,徹底也能夠經過直接瀏覽Oracle.ManagedDataAccess.dll所在位置,將該dll複製到bin目錄下.orm
下面是最基本的使用代碼:htm
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 }
最後附上dll下載:http://files.cnblogs.com/yjmyzz/Oracle.ManagedDataAccess.zip blog