IErrorInfo.GetDescription 在 asp.net c# 中因 E_FAIL(0x80004005) 而失败?
Posted
技术标签:
【中文标题】IErrorInfo.GetDescription 在 asp.net c# 中因 E_FAIL(0x80004005) 而失败?【英文标题】:IErrorInfo.GetDescription failed with E_FAIL(0x80004005) in asp.net c#? 【发布时间】:2017-02-27 15:31:26 【问题描述】:我正在尝试读取 excel 文件并将文件的内容转换为数据表,但我不断收到此异常 IErrorInfo.GetDescription failed with 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);
【问题讨论】:
Best /Fastest way to read an Excel Sheet into a DataTable?的可能重复 【参考方案1】:首先,由于您使用的是 .NET,因此您需要将从 IDisposable 继承或实现的任何内容包装到 using 语句中。
如:
using (OleDbConnection connection = new OleDbConnection("connectionstring"))
//Do stuff here
第二: 请在此SO Answer 上参考MethodMan 的出色答案。 它拥有您需要知道的一切。他同时进行 OleDb 连接和 TextFieldParser,这将更快且更便宜。
【讨论】:
以上是关于IErrorInfo.GetDescription 在 asp.net c# 中因 E_FAIL(0x80004005) 而失败?的主要内容,如果未能解决你的问题,请参考以下文章
查询“select * from open”时获取“IErrorInfo.GetDescription failed with E_FAIL(0x80004005)”
vfpoledb.1 在第二次打开时给出 IErrorInfo.GetDescription failed with E_FAIL(0x80004005)