C# 如何使用针对Excel文件运行的多个SELECT查询填充数据集?
我的命令是这样的:C# 如何使用针对Excel文件运行的多个SELECT查询填充数据集?,c#,.net,sql,excel,C#,.net,Sql,Excel,我的命令是这样的: string command = "SELECT * FROM [SheetName1$]; SELECT * FROM [SheetName2$]; ...." 当我这样做的时候 DataSet set = new DataSet(); using(OleDbDataAdapter adapter = new OleDbDataAdapter(command, connection)) { adapter.Fill(ds) } 我以一个空数据集
string command = "SELECT * FROM [SheetName1$]; SELECT * FROM [SheetName2$]; ...."
当我这样做的时候
DataSet set = new DataSet();
using(OleDbDataAdapter adapter = new OleDbDataAdapter(command, connection))
{
adapter.Fill(ds)
}
我以一个空数据集结束(更具体地说,我以一个异常结束,该异常表示在SQL语句结束后找到的字符)。但是,如果我只使用一个SELECT查询,则可以正常工作。可以在SQL查询中尝试此操作:
SELECT * FROM [SheetName1$]
UNION ALL
SELECT * FROM [SheetName2$]
我希望这会有所帮助,因为Excel不能在一条语句中执行多条语句。试着用两个命令来实现这一点
DataSet set1 = new DataSet();
using(OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [SheetName1$];", connection))
{
adapter.Fill(set1 );
}
DataSet set2 = new DataSet();
using(OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [SheetName2$];", connection))
{
adapter.Fill(set2);
}
不要填写
DataSet
s,而是填写DataTable
s,然后将所述DataTable
s添加到数据集
DataSet ds = new DataSet();
DataTable dt1 = ds.Tables.Add("set1");
using(OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [SheetName1$];", connection))
{
adapter.Fill(dt1);
}
DataTable dt2 = ds.Tables.Add("set2");
using(OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [SheetName2$];", connection))
{
adapter.Fill(dt2);
}
不是真的。我需要将数据放在单独的表中