首页 > 解决方案 > 连接到 Excel 文件时,OleDbConnection 错误“外部组件已引发异常”

问题描述

我的 WinForms 应用程序将数据从 Excel 文件读取到 DataTable。在第一次通话时,一切正常。在第二次通话(15 分钟后,由 System.Timers.Timer 调节)时,我在该行收到以下错误conn1.Open();

外部组件引发的异常

我已经搜索了 StackOverflow,但没有找到任何可以完全回答这个问题的东西。我读过OleDbConnection 得到“外部组件已引发异常”。,但是这建议检查 Visual Studio 中的构建配置平台,在我的情况下,它必须是正确的,因为代码在第一次调用时正确执行。

下面是我的代码:

DataTable dt = new DataTable();
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Mode=Read;Extended Properties=\"Excel 12.0 XML;HDR=Yes\"";
FileInfo file = new FileInfo(path);
OleDbConnection conn1 = new OleDbConnection(connectionString);
conn1.Open(); //Exception is thrown here on second calling
OleDbDataAdapter da = new OleDbDataAdapter(string.Format("SELECT * FROM [Sheet1$]"), conn1);
da.Fill(dt);

path始终是一个新文件。每次调用时,旧文件都会被新文件(具有不同文件名)替换。

我已经为此苦苦挣扎了几天,不胜感激。

标签: c#winformsoledbconnection

解决方案


只是逐行剥离代码,事实证明删除以下行会使代码工作:

FileInfo file = new FileInfo(path);

如果有人对为什么会这样有任何建议,我很想知道。


推荐阅读