net不安装Oracle11g客户端直接使用ODAC

时间:2022-03-28 14:46:36

好处:

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,由于这些文件都放在..\stage\Components\..下面的压缩包里,所以比较难找,因此可以采用第二种方法:在安装有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 > )
{
this.dataGridView1.DataSource = tDS.Tables[];
}
}
catch (OracleAccess.OracleException ex)
{
MessageBox.Show(ex.Message);
}
}