0

私のコマンドは次のようなものです:

string command = "SELECT * FROM [SheetName1$]; SELECT * FROM [SheetName2$]; ...."

私がする時

  DataSet set = new DataSet();
  using(OleDbDataAdapter adapter = new OleDbDataAdapter(command, connection))
  {
     adapter.Fill(ds)
  }

最終的に空のDataSetになります(より具体的には、SQLステートメントの終了後に文字が見つかったという例外が発生します)。ただし、SELECTクエリを1つだけ使用する場合、これは正常に機能します。

4

3 に答える 3

1

s を埋める代わりに、DataSets を埋めてから、そのs を DataSet にDataTable追加します。DataTable

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);
}
于 2012-08-22T17:15:27.140 に答える
0

SQLクエリでこれを試すことができます:

SELECT * FROM [SheetName1$]
UNION ALL
SELECT * FROM [SheetName2$]

これが役立つことを願っています

于 2012-08-22T16:05:11.840 に答える