在64位环境下运行时,C#.NET应用程序抛出ODBC驱动程序不匹配错误

在64位环境下运行时,C#.NET应用程序抛出ODBC驱动程序不匹配错误,c#,.net,windows,visual-studio-2012,odbc,C#,.net,Windows,Visual Studio 2012,Odbc,全部,, 我继承了一个C#.Net项目,我正在对它进行一些更新。使用Visual Studio Professional 2012,Windows 7-32位(我知道…),在我的本地工作站上,一切似乎都很正常 当我将其推送到测试服务器(Windows 7,64位)时,当应用程序尝试使用ODBC连接到数据库时,我收到以下错误:“驱动程序管理器指定的dsn包含驱动程序和应用程序之间的架构不匹配”错误 此应用程序以前在64位计算机(Windows Server)上运行,我没有更改任何ODBC代码。此外

全部,, 我继承了一个C#.Net项目,我正在对它进行一些更新。使用Visual Studio Professional 2012,Windows 7-32位(我知道…),在我的本地工作站上,一切似乎都很正常

当我将其推送到测试服务器(Windows 7,64位)时,当应用程序尝试使用ODBC连接到数据库时,我收到以下错误:“驱动程序管理器指定的dsn包含驱动程序和应用程序之间的架构不匹配”错误

此应用程序以前在64位计算机(Windows Server)上运行,我没有更改任何ODBC代码。此外,64位计算机上的ODBC连接存在于32位ODBC连接管理器中

我将System.Data.ODBC.ODBCConnection类用于针对.NET Framework 4的应用程序

关于解决这个问题的下一步有什么想法吗?据我所知,只要存在32位ODBC连接,我使用的类目前就可以在64位系统上工作

我正在使用的代码如下(它击中了异常行,这就是我得到消息的地方):


您构建的平台目标是什么?有CPU/x86/x64吗?很好的捕获:)。我把它设置为“任何CPU”,我认为这是对它的误解。我只是将它设置为x86以匹配我的ODBC SystemDSN,然后重新构建它,它似乎得到了解决。我认为在64位系统上安装时,最好只使用32位驱动程序/32位ODBC显式定义。谢谢
        string sConnection = "";
        OdbcConnection conn;

        sConnection = "DSN=" + sDSN + ";uid=" + _User + ";pwd=" + _Password;

        try
        {
            conn = new OdbcConnection(sConnection);
            conn.Open();
        }
        catch (Exception ex)
        {
            return "Error: Cannot connect to database. Error (" + ex.Message + ")";
        }