作者:菩提樹下的楊過
出處:http://yjmyzz.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
“ODP.NET Managed”發布已經有一段時間了,近期正好有一個新項目,想嘗試用一下,參考園子里的文章:《.NET Oracle Developer的福音——ODP.NET Managed正式推出》 到Oracle官網 下載 ODP.NET_Managed121010.zip 大約1.9M,解壓后目錄結構如下:

核心的dll,就是common目錄下的Oracle.ManagedDataAccess.dll,不象ODP.NET以前的版本,這次終於不用區分x86/x64版本了,不管是32位還是64位,都是同一個dll。
至於manged/x64、managed/x86這二個目錄,是用來向.NET x86或.NET x64的GAC注冊程序集的,運行相關的configure.bat后,會自動將common中的Oracle.ManagedDataAccess.dll放入GAC,這樣在vs中添加引用時,能自動找到GAC中的相關命名空間

運行了configure.bat的機器上,應用程序的bin目錄下不必包括Oracle.ManagedDataAccess.dll,就能正常運行了。
注:configure.bat這一步是可選的,添加引用時,完全也可以通過直接瀏覽Oracle.ManagedDataAccess.dll所在位置,將該dll復制到bin目錄下.
下面是最基本的使用代碼:
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

