簡體   English   中英

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

[英]IErrorInfo.GetDescription failed with E_FAIL(0x80004005) in asp.net c#?

我正在嘗試讀取一個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);

首先,由於您使用的是.NET,因此需要將從IDisposable繼承或實現的任何內容包裝到using語句中。

如:

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

第二:請參閱MethodMan關於此SO答案的這個好答案。 它擁有您需要知道的一切。 他同時執行OleDb連接和TextFieldParser,這將更快,更便宜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM