好处:
1、不安装客户端也能访问服务器上的oracle(假设Application Server与DB Server 分开)
2、不需要安装ODAC
3、不需要配置TnsNames.Ora文件
缺点:
不能使用odac for .net中对应的工具
步骤:
如果不安装Oracle11g的客户端则需要在程序的debug目录下拷贝如下几个dll文件
oci.dll
oracle.dataaccess.dll
oraops11w.dll
oraociei11.dll
这几个文件可以从下载的ODAC安装包中找到,我下载的是ODTwithODAC112030.zip,由于这些文件都放在..stageComponents..下面的压缩包里,所以比较难找,因此可以采用第二种方法:在安装有ODTwithODAC112030的计算机上找到相应的安装目录,将目录下面的对应文件copy出来就可以了
建议:在编码的时候最好是安装ODTwithODAC112030,在服务器上部署的时候不安装。
string tIP = this.txtIP.Text; string tSid = this.txtSID.Text; string tUsername = this.txtUSERNAME.Text; string tpass = this.txtPASS.Text; string tTableName = this.txtTABLENAME.Text; string connectstring = string.Format("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521)))(CONNECT_DATA=(SID={1})(SERVER=DEDICATED)));persist security info=True;user id={2};password={3}", tIP, tSid, tUsername, tpass); using (OracleAccess.OracleConnection tOC = new OracleAccess.OracleConnection(connectstring)) { try { OracleAccess.OracleCommand tOracleCommand = new OracleAccess.OracleCommand("select * from " + tTableName, tOC); tOC.Open(); OracleAccess.OracleDataAdapter tOracleDA = new OracleAccess.OracleDataAdapter(tOracleCommand); DataSet tDS = new DataSet(); tOracleDA.Fill(tDS); if (tDS.Tables.Count > 0) { this.dataGridView1.DataSource = tDS.Tables[0]; } } catch (OracleAccess.OracleException ex) { MessageBox.Show(ex.Message); } }