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数据库引擎版本
  • 重新编译并运行您的项目
  • 现在应该解决运行时错误