嘿伙计们,我想在 1 个 ado.net 调用中从我的 ms access 数据库中获取 3 个表,但是当我尝试这样做时出现错误
当我将我的 sql 查询更改为只获取 1 个表时,我的代码工作正常
谁能让我知道如何通过 ms 访问实现这一目标?因为我多年来一直在使用 sql server 执行此操作,没有任何问题。也许访问不支持多个结果集?我在访问方面没有做太多工作。请帮忙。以下是我的参考代码:
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");