【发布时间】:2013-02-20 10:49:41
【问题描述】:
我有一种情况,我用 excel 文件加载数据集。所有工作表都作为数据表加载,适当的工作表名称作为数据表名称。我想要做的是使用列名获取这个数据表值。但我没有得到错误说
“列'Execute'不属于表Sheet1”。
在将 excel 加载到数据表时,我使用了 HDR=YES 和 IMEX=1。我也尝试过使用 HDR=NO。没有任何工作。
下面的代码是将excel写入数据表
foreach (Microsoft.Office.Interop.Excel.Worksheet wsheet in workbook.Worksheets)
{
string sql1 = "SELECT * FROM [" + wsheet.Name + "$]";
OleDbCommand selectCMD1 = new OleDbCommand(sql1, SQLConn);
SQLAdapter.SelectCommand = selectCMD1;
SQLAdapter.Fill(dataset.Tables.Add(wsheet.Name));
}
Excel 中的数据可以完美地加载到每张工作表中。但是按列名获取它是问题所在。
请给点建议
【问题讨论】:
-
我不确定这与它有多大关系,但我想知道您为什么使用
SQLDataAdapter而不是OleDbDataAdapter?我刚刚尝试了您的代码,但使用OleDbDataAdapter并且效果很好(即我得到了列名)。 -
其实我的代码是用于oledb的,我创建的对象是这样的 OleDbDataAdapter SQLAdapter = new OleDbDataAdapter();我知道这很疯狂......但是谢谢,你给出了答案并且它起作用了。
-
对,我明白了。我以为你可能在使用this。无论如何,很高兴我能提供帮助。