繁体   English   中英

从ms访问返回多个结果集到ado.net

[英]return multiple result sets from ms access to ado.net

嗨,我想从ms访问数据库中的1个ado.net调用中获取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");

据我所知,如果您的数据位于Access mdb中,则不能有多个数据集。 相反,如果您使用Access连接到外部数据源,则可以使用传递查询来执行此操作,但是我不认为这是您的情况。 (请参阅http://support.microsoft.com/kb/126992

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM