因此,我了解到用于查询 Microsoft Access MDB 文件和 Excel 电子表格等数据源的Microsoft.Jet.OLEDB.4.0数据提供程序在 Windows 64 位操作系统下不起作用。
我现在应该使用什么来查询 .NET 3.5 (C#) 应用程序中的这些文件类型,以确保在 x86 和 x64 环境中的兼容性?我已经搜索了互联网,但似乎无法找到关于如何处理这种不兼容性的直接答案。
我还尝试过使用 ODBC 提供程序和 MSDASQL 提供程序,但没有成功,因为它们似乎会抛出与 Microsoft.JET.OLEDB.4.0 提供程序在 x64 环境中使用时相同的异常(除非我在做一些公然错误的事情)这两个提供程序,即使它们在我的 Windows XP x86 环境下运行良好)。
我发现有人说我需要在 x64 系统中使用%WINDIR%\System32\odbcad32.exe进行 ODBC 连接,但我知道如何使用它。
在 x64 下抛出的示例异常:
************** 异常文本 ************** System.InvalidOperationException:“Microsoft.Jet.OLEDB.4.0”提供程序未在本地机器。在 System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) 在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) 在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo、DbConnectionPool 池、DbConnection owningObject)