与Oracle数据库连接失败

时间:2016-09-21 06:55:51

标签: c# .net oracle oracle11g odp.net

代码:

private void Button_Click_6(object sender, RoutedEventArgs e)
{
    TimerView tobj = new TimerView();
    tobj.Show();
    string OracleServer = "Data Source=(DESCRIPTION="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=DLDT-0897.nectechnologies.in)(PORT=1521))"
+ "(CONNECT_DATA=(SERVICE_NAME=XE)));"
+ "User ID=system;Password=abc@1234;";
     public bool Open()
{
    try
    {
        conn = new OracleConnection(OracleServer);
        conn.Open();
        return true;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    return false;
}

conn.Open()中的错误:

  

警告1正在构建的项目的处理器体系结构“MSIL”与参考“Oracle.DataAccess,Version = 4.112.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342,processorArchitecture = AMD64”的处理器体系结构不匹配“,”AMD64“。这种不匹配可能会导致运行时故障。请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者依赖于具有与项目的目标处理器体系结构相匹配的处理器体系结构的引用。 WpfApplication

1 个答案:

答案 0 :(得分:1)

ODP.NET包有两种形式:一种用于32位程序,另一种用于64位程序。编译时必须选择一个,否则在运行程序时可能会遇到麻烦。因此,您必须优先从MSIL切换到32位模式(以支持两种处理器架构)。您需要包含32位版本的ODP.NET(现在您使用的是64位)。

更好的选择可能是使用托管的ODP.NET库,它支持两种处理器体系结构,因为它不再依赖于OCI。您可以找到最新版本here