IErrorInfo.GetDescription在asp.net c#中的E_FAIL(0x80004005)失败了?

时间:2017-02-27 15:31:26

标签: c# asp.net

我正在尝试读取excel文件并将文件内容转换为数据表,但我不断收到此异常IErrorInfo.GetDescription失败,E_FAIL(0x80004005)指向特定行POCCommand.Fill(dt);这就是我到目前为止尝试过我能做错什么?

string POCpath = @"p.xlsx";
 string POCConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + POCpath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";

    OleDbConnection POCcon = new OleDbConnection(POCConnection);
    OleDbCommand POCcommand = new OleDbCommand();
    DataTable dt = new DataTable();
    OleDbDataAdapter POCCommand = new OleDbDataAdapter("select * from [Sheet1$] ", POCcon);
    POCCommand.Fill(dt);
    Console.WriteLine(dt.Rows.Count);

1 个答案:

答案 0 :(得分:0)

首先,由于您正在使用.NET,因此需要将从IDisposable继承或实现的任何内容包装到using语句中。

如:

using (OleDbConnection connection = new OleDbConnection("connectionstring")){
    //Do stuff here
}

第二: 请MethodMan在此SO Answer上参考这个精彩的答案。 它拥有您需要知道的一切。他同时执行OleDb连接和TextFieldParser,这将更快,更便宜。