使用新ODP.Net的简单的部署,从C#访问与Oracle

分类:数据库| 发布:camnprbubuol| 查看: | 发表时间:2011/10/28

微软已经过时System.Data.OracleClient的,所以在这里的一个简单的例子,使用新的ODP.NET Oracle.DataAccess.Client,具有以下优点:*简单的xcopy部署*无甲骨文[即时]客户端安装所需要的 *没有TNSNAMES.ORA 文件的第一需要,从Oracle下载的〜200MB ODP.Net。怪胎不要出来,你不会需要重新分配,所有这与您的应用程序,只需〜30megs值得 。我用这个版本[链接],但你可能想要得到的最新版本[链接 ] 。

抓斗Oracle.DataAccess.dllODAC1110710beta.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

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/469.html