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官方下載需要賬號,不想下載的話就點這裡
上面那個是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);