【发布时间】:2020-06-02 13:10:56
【问题描述】:
我在尝试使用 OleDb 时不断收到此错误,但不知道如何解决该问题。我试过引用其他网站等等,但一无所获。这是我的代码的样子:
OleDbCommand command = new OleDbCommand(@"SELECT [Name], [Config status], [OverallStatus], [NumHosts], [numEffectiveHosts], [TotalCpu], [NumCpuCores], [NumCpuThreads], [EffectiveCpu], [TotalMemory], [EffectiveMemory], [Num VMotions], [HA enabled], [Failover Level], [AdmissionControlEnabled], [Host monitoring], [HB Datastore Candidate Policy], [Isolation Response], [Restart Priority], [Cluster Settings], [Max Failures], [Max Failure Window], [Failure Interval], [Min Up Time], [VM Monitoring], [DRS enabled], [DRS default VM behavior], [DRS vmotion rate], [DPM enabled], [DPM default behavior], [DPM Host Power Action Rate] FROM [" + Sheet + "$]", conn); //Selects everything inside excel file
DataTable Data = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
adapter.Fill(Data); //Puts all data inside a DataSet
错误发生在 adapter.Fill(Data) 行。感谢您提供的任何帮助!
编辑:有关更多详细信息,我正在尝试使用 OleDb 从 Excel 电子表格中提取数据,将该数据放入 DataTable 对象中,然后使用实体框架将该数据推送到 SQL 服务器数据库。在我的 Excel 电子表格中,我尝试访问的工作表名为“vCluster”。问题可能出在我的 OleDbConnection 字符串中吗?
【问题讨论】:
-
您的电子表格中有标题行吗?你的连接字符串是什么?仔细检查您的列名称与 excel 列的名称。如果您有错字,则会出现此错误。
-
我在电子表格中确实有一个标题行,我刚刚检查了列的名称与 excel 列的名称。我发现了一个小的间距问题,但在修复之后我仍然得到同样的错误。 “如果您有类型,则会出现此错误”是什么意思?
-
这是一个错字,并没有被更正为“错字”。然而。如果列名(在 excel 中)与 C# 中的列名不匹配,则 OleDb 认为您正在提供参数并引发错误。
-
还要检查表名。它应该与 excel 中的工作表名称匹配。
-
感谢史蒂夫的帮助!与 C# 中的列名相比,Excel 中的列名实际上是一个错误。
标签: c# oledb oledbcommand oledbdataadapter