微软已经过时System.Data.OracleClient的,所以在这里的一个简单的例子,使用新的ODP.NET Oracle.DataAccess.Client,具有以下优点:*简单的xcopy部署*无甲骨文[即时]客户端安装所需要的 *没有TNSNAMES.ORA 文件的第一需要,从Oracle下载的〜200MB ODP.Net。怪胎不要出来,你不会需要重新分配,所有这与您的应用程序,只需〜30megs值得 。我用这个版本[链接],但你可能想要得到的最新版本[链接 ] 。
抓斗Oracle.DataAccess.dll:ODAC1110710beta.zip \舞台\组件\ oracle.ntoledb.odp_net_2 \ 11.1.0.7.10 \ 1 \数据文件\ filegroup4.jar
将它复制到您的项目(为WinForms:同一个文件夹作为您的项目的Program.cs的; Asp.net:Bin文件夹中)。在Visual Studio中,右键单击引用,并添加Oracle.DataAccess.dll。
写一些像这样的代码在您的应用程序:
using Oracle.DataAccess.Client; // This goes up the top
...
string connstring =
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1527))" +
"(CONNECT_DATA=(SID=mysid)));User Id=myuserid;Password=mypassword;";
using (OracleConnection conn = new OracleConnection(connstring))
{
conn.Open();
string sql = "select distinct owner from sys.all_objects order by owner";
using (OracleCommand comm = new OracleCommand(sql, conn))
{
using (OracleDataReader rdr = comm.ExecuteReader())
{
while (rdr.Read())
{
Console.WriteLine(rdr.GetString(0));
}
}
}
}
然后,您需要以下DLL被放置在同一文件夹作为您的EXE:
* oci.dll(查找“oci.dll.dbl”,并将其重命名,删除“孖宝”。;在ODAC1110710beta.zip \舞台\组件\ oracle.rdbms.rsf.ic \ 11.1.0.7.0 \ 1 \数据文件\ filegroup2.jar)
* 在ODAC1110710beta.zip Oracle.DataAccess.dll(\舞台\组件\ oracle.ntoledb.odp_net_2 \ 11.1.0.7.10 \ 1 \数据文件\ filegroup4.jar)
* oraociicus11.dll(在ODAC1110710beta.zip \舞台\组件\ oracle.rdbms.ic \ 11.1.0.7.0 \ 1 \数据文件\ filegroup3.jar)
* OraOps11w.dll(ODAC1110710beta.zip \舞台\组件\ oracle.ntoledb.odp_net_2 \ 11.1.0.7.10 \ 1 \数据文件\ filegroup3.jar)您可能需要以下DLL的,但我没有。我让他们无论如何,仅仅是安全的,像有些人说他们需要的 :
* orannzsbb11.dll(在ODAC1110710beta.zip \舞台\组件\ oracle.ldap.rsf.ic \ 11.1.0.7.0 \ 1 \数据文件\ filegroup1.jar)
* oraocci11.dll(在ODAC1110710beta.zip \舞台\组件\ oracle.rdbms.rsf.ic \ 11.1.0.7.0 \ 1 \数据文件\ filegroup3.jar)
* OCIW32.DLL(称为“ociw32.dll.dbl”ODAC1110710beta.zip \现阶段\组件\ oracle.rdbms.rsf.ic \ 11.1.0.7.0 \ 1 \数据文件\ filegroup2.jar)
如果你得到的例外“供应商是不兼容的Oracle客户端版本”,不强调,简单地折回先前的步骤,并确保你所有这些DLL的相同ODP.Net / ODAC的分布,以避免版本号冲突,并把他们都在为您的EXE相同的文件夹(或Bin文件夹中,如果它的一个Asp.Net应用程序,然后尝试重新启动IIS)。如果您下载的ODP.Net的新版本,jar文件包含DLL的可能移动,所以你必须手动翻遍所有,不用担心它不会采取太*长!祝你好运!
来源:http://splinter.com.au/using-the-new-odpnet-to-access-oracle-from-c