我的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);
如果有人对为什么会这样有任何建议,我很想知道。