OleDbConnection获取“外部组件抛出exception”。
我正在使用Windows窗体应用程序将数据导出到Excel。
应用程序是x64和x86构建的。
因此,必须安装两个版本的Microsoft Access数据库引擎才能在同一台计算机上运行该应用程序。
首先安装AccessDatabaseEngine.exe,并且AccessDatabaseEngine_x64.exe被动安装。
x64版本的应用程序正在运行
但x86版本正在增加
SEHException: "External component has thrown an exception." at System.Data.Common.UnsafeNativeMethods.IDBInitializeInitialize.Invoke(IntPtr pThis) at System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession(OleDbConnectionString constr, SessionWrapper& sessionWrapper) at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open()
代码部分如下;
var accessConnection = new OleDbConnection(connectionString); accessConnection.Open();
而ConnectionString是
Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Users\Me\Desktop\ExportTest.xls";Extended Properties="Excel 8.0;HDR=Yes";
我该如何解决?
当Visual Studio中的构建配置平台不正确时,通常会发生这种情况,这可能发生在两个构建配置平台x86和x64中。
这是由于项目的构建配置平台与计算机上安装的Microsoft Access数据库引擎不匹配。
为了解决此错误:
- 在Visual Studio中更改构建配置平台
- 确保它匹配
- 您计算机上的Microsoft Access数据库引擎版本
- 重新编译并运行您的项目
- 现在应该解决运行时错误