c# - 连接到 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
始终是一个新文件。每次调用时,旧文件都会被新文件(具有不同文件名)替换。
我已经为此苦苦挣扎了几天,不胜感激。
解决方案
只是逐行剥离代码,事实证明删除以下行会使代码工作:
FileInfo file = new FileInfo(path);
如果有人对为什么会这样有任何建议,我很想知道。
推荐阅读
- c# - IQueryable WHERE inside a for loop does not produce expected result
- http - 为什么说 HTTP2 是二进制协议?
- c# - 无法显示所有十进制数字 C#
- python - 如何修复 binascii.Error:使用“hex”编解码器解码失败(错误:找到非十六进制数字)
- pandas - 如何绘制柱状图,其中 2 个类别彼此相邻?
- javascript - 有没有办法使用 C3.js 创建两个具有相同中心点的甜甜圈
- python - NOT NULL 约束失败:adminside_event.event_data
- azure - 如何使用服务主体连接到 Azure Databricks?
- python - 使用 vips 逐行比较图像
- android - 使用场景形式在图像上渲染视频