首先介紹下開發環境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客戶端,如果安裝整個數據庫也是可以的)
目前了解C#中連接Oracle數據庫的方法有3種,分布是微軟的System.Data.OracleClient,Oracle的Oracle.DataAccess.Client和Oracle的Oracle.ManagedDataAccess.dll(最優)
1.微軟的System.Data.OracleClient可以直接引用,但是VS會提示“System.Data.OracleClient.OracleConnection”已過時,這表明微軟自己都不建議使用了,所以知道就可以了,不必使用
2.C#使用Oracle.DataAccess.Client也叫ODP.net,他是Oracle提供的數據庫訪問類庫,其功能和效率上都有所保證,它還有一個非常方便特性:在客戶端上,可以不用安裝Oracle客戶端,直接拷貝即可使用。由於微軟在.net framework4中會將System.Data.OracleClient.dll deprecated,而且就訪問效率和速度而言,System.Data.OracleClient.dll與Oracle.DataAccess.dll相比,微軟的確實沒有oracle提供的類庫有優勢,所以我放棄了使用多年的System.Data.OracleClient.dll,取而代之的是odp.net。然而odp.net的優點不止這些,還包括:
1)不在安裝客戶端也能訪問服務器上的oracle(假設Application Server與DB Server 分開)
2)不需要配置TnsNames.Ora文件
具體的使用方法請參考這位大俠的 http://blog.csdn.net/rrrrssss00/article/details/7178515/
還有這位大俠的 http://blog.csdn.net/sumirry/article/details/46746331
如果項目要從System.Data.OracleClient.OracleConnection轉Oracle.DataAccess.Client時,只需要在oracle 安裝目錄下 找到 Oracle.DataAccess.dll添加引用,后 using Oracle.DataAccess.Client;
其他的都不用動,即可。
連接字符串中 如有 用的是 user=xxx 就改成user id=xxx把原來 Using 的System.Data.OracleClient去掉即可。
3.重點學習最后一種Oracle.ManagedDataAccess.dll,第二種的優點很多,但是也有缺點,就是要區分用區分x86/x64版本。
下載dll和使用方法參考這位大俠的 http://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnString"].ToString()); con.Open(); OracleCommand cmd = new OracleCommand(cmdString, con); OracleDataAdapter oda = new OracleDataAdapter(); oda.SelectCommand = cmd; oda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();