代码之家  ›  专栏  ›  技术社区  ›  Raj

从ms-access返回多个结果集到ado.net

  •  1
  • Raj  · 技术社区  · 17 年前

    嘿,伙计们,我想在一次ado.net调用中从我的ms-access数据库中获取3个表,但是当我尝试这样做时,我遇到了一个错误

    当我将sql查询更改为只获取1个表时,我的代码工作正常

    有人能告诉我如何使用ms access实现这一点吗?因为我用sqlserver做这件事已经很久了,没有任何问题。也许access不支持多个结果集?我在访问方面做得不多。请帮忙。下面是我的代码供参考:

    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");
    
    1 回复  |  直到 17 年前
        1
  •  3
  •   pomarc    17 年前