1. 程式人生 > >oracle無客戶端連線資料庫(C#)

oracle無客戶端連線資料庫(C#)

前提:

1. 不安裝oracle的客戶端

2. 不需要配置ora檔案

3. C# 實現

 

既然是C#實現,當然就要去找oracle的連線庫了,主要有三種方式:

1. 微軟提供的System.Data.OracleClient已經過時了,不推薦使用了

2. Oracle 的Oracle.DataAccess

3. Oracle 的Oracle.ManagedDataAccess

如果執行環境是.net 3.5的話,就只能選擇Oracle.DataAccess了

 

開發:

先去下載ODAC, oracle官方下載需要賬號,不想下載的話就點這裡

x64 x86

上面那個是ManagedDataAccess,體積比較小,推薦使用

下面那個是DataAcess,體積比較大,需要安裝一下ODP.NET,但是不是安裝Oracle client 那個巨無霸。

Oracle.Managed.DataAccess 只需要引用Oracle.Managed.DataAccess.dll 這個庫即可,不需要其他什麼模組了。

Oracle.DataAccess則需要安裝下Xcopy的ODP.net4/20。命令列下執行install.bat odp.net2/4 C:\oracle myhome true即可。這樣ODP.NET就安裝好了。引入Oracle.DataAccess庫就OK了。

這裡執行時可能會碰到異常,只要將C:\oracle 目錄下的oraons.dll拷貝至C:\oracle\bin目錄下即可。

如果想做成綠色版,免安裝ODP.NET,則收集以下DLL並拷貝至exe目錄即可:

OCI.DLL, Oracle.DataAccess.dll, oraociei12.dll, oraons.dll, oraops12.dll,

還另外加一個vc庫msvcr***.dll,這就看你的vs版本了。

另外附上ConnectString的寫法:

constr = string.Format("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={2})(PORT={3})))(CONNECT_DATA=(SERVICE_NAME={4})));User Id={0};Password={1}", _userID, _passWord, _dataSource, _port, _serviceName);