ms access データベースから 1 回の ado.net 呼び出しで 3 つのテーブルをフェッチしたいのですが、そうしようとするとエラーが発生します。
SQLクエリを1つのテーブルだけをフェッチするように変更すると、コードは正常に動作します
msアクセスでこれを達成する方法を誰かに教えてもらえますか? 私は何年も問題なくSQLサーバーでこれを行ってきたからです。おそらくアクセスは複数の結果セットをサポートしていませんか? 私はアクセスであまり働いていません。助けてください。以下は参照用の私のコードです:
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DatabaseFile.mdb;Persist Security Info=True");
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Table1; SELECT * FROM Table2; SELECT * FROM Table3;", con);
DataSet ds = new DataSet();
da.Fill(ds);
更新:これは不可能に見えます。だから私は本当にばかげたコードを書いて欲しいものを手に入れなければなりませんでした.コンピューティングリソースの完全な無駄です.
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable("Table1"));
ds.Tables.Add(new DataTable("Table2"));
ds.Tables.Add(new DataTable("Table3"));
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DatabaseFile.mdb;Persist Security Info=True");
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Table1;", con);
da.Fill(ds, "Table1");
da.SelectCommand.CommandText = "SELECT * FROM Table2;";
da.Fill(ds, "Table2");
da.SelectCommand.CommandText = "SELECT * FROM Table3;";
da.Fill(ds, "Table3");