我的WinForms应用程序将数据从Excel文件读取到DataTable。在第一个电话上,一切正常。在第二次调用(15分钟后,由System.Timers.Timer调节)时,在行conn1.Open();
处收到以下错误:
外部组件引发了异常
我已经搜索了StackOverflow,但没有找到能完全解决此问题的内容。我已经读过OleDbConnection gets "External component has thrown an exception.",但是建议您检查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);
如果有人对为什么会这样有任何建议,我很想知道。