C# 如何将32位应用程序连接到64位系统DSN?

C# 如何将32位应用程序连接到64位系统DSN?,c#,dsn,C#,Dsn,如何从32位应用程序连接到64位系统DSN?我得到一个错误: 错误[IM014][Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配 OdbcConnection con = new OdbcConnection(); con.ConnectionString = string.Format("DSN={0}", _dsnName); 我看过很多帖子,其中人们使用64位连接到32位,有没有一种方法可以在不使用32位应用程序重新定义ODBC连接

如何从32位应用程序连接到64位系统DSN?我得到一个错误: 错误[IM014][Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

OdbcConnection con = new OdbcConnection();
con.ConnectionString = string.Format("DSN={0}", _dsnName); 
我看过很多帖子,其中人们使用64位连接到32位,有没有一种方法可以在不使用32位应用程序重新定义ODBC连接的情况下从32位连接到64位?
C:\Windows \sWSWOW4\ODCAD32.2.EX

< P>如果你能做到,你应该考虑编译你的应用程序,让它运行64或32位应用程序,这取决于它运行的是什么。


有关位差异的非常详细的文章,请参阅Scott Hanselman的关于这一点的文章。

a'prefer32bit'exe,调用64位dll。 解决方案:

  • SampleIntegration.exe/32BITPREF-
  • 取消选中VisualStudio中的“首选32位”
  • 编译为64位

  • 不。而且,DSN是一场噩梦,我建议完全避免使用它们。IHMO您应该尝试不要求用户进行系统更改以使用您的应用程序。您尝试连接到的数据源是什么?Visual studio 2012中有一个32位首选选项,取消选中默认为64位。不过,用32位编译并不能解决这个问题。