0

我编写了一个到 Oracle Express 版本 10 的 Oracle 数据库连接

它适用于我的开发 PC (Windows Vista)。

当我在 Windows XP PC 上运行这个程序时,Oracle DB 连接在连接到服务器时抛出异常

“错误:'Oracle.DataAccess.Client.OracleConnection' 的类型初始化程序引发异常”

连接代码如下:

try{ 
 string oradb = "Data Source="
               +"(DESCRIPTION ="
               +" (ADDRESS = (PROTOCOL = TCP)(HOST = " + IP + ")(PORT = 1521))"
               +" (CONNECT_DATA ="
               +" (SERVER = DEDICATED)"
               +" (SERVICE_NAME = XE)"
               +" )"
               + " );User id=XXXX;Password=XXXX;";

            OracleConnection conn = new OracleConnection(oradb);

             .....
             .....


}
catch (Exception ex)
{
        MessageBox.Show("Error:" + ex.Message);
}
4

1 回答 1

0

XP 盒子上的客户端软件是哪个版本?

检查我的计算机配置,我只在 Oracle 10g 安装上看到 ODP.Net 1.x(对我来说是 C:\oracle\product\10.2.0\db_home\ODP.NET\bin\1.x ),它是 . Net 1.0 安装不适用于 .net 2.0 - 4.0。这可能是你麻烦的根源。

Oracle 10.2 ODP.Net 驱动程序也非常不稳定(即使是 .Net 2.0 版本)。如果您使用的是 .Net 1.0 或 1.1,您可能需要使用 ODPReg.exe(同一目录)重新注册 Oracle.DataAccess.dll,如果您使用的是 2.0,您可能需要安装一个 .net 2.0(最高 3.5)Oracle客户端或 .Net 4.0(或 4.5)Oracle 客户端。

我建议您安装一个 11.2 客户端,并检查 Oracle.DataAccess.dll 是否已正确注册(有 2 个安装:一个用于 .Net 2.0-3.5,一个用于 .Net 4.0,在我的盒子 C:\oracle\product\ 11.2.0\client_ODTwithODAC112030\odp.net\bin\2.x 和 C:\oracle\product\11.2.0\client_ODTwithODAC112030\odp.net\bin\4 )。您可能需要使用 OraProvCfg.exe 强制注册

您也可以尝试使用 Xcopy 驱动程序安装,如果您想将驱动程序与您的软件一起分发,请务必仔细阅读文档,它很奇怪且容易出错(例如 ODAC112030Xcopy_x64.zip)。

ODAC 在这里:http ://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html 。

于 2012-09-13T06:29:17.497 回答