从 DataReader 填充多个数据表。有可能吗?

Mud*_*san 2 c# asp.net ado.net datareader

我有一个存储过程,它返回两个结果集,我在 DataReader 中捕获这些结果集。

dr = returnData(Id,frmDate, toDate);

dt1 = new DataTable();
dt2 = new DataTable();

dt1.Load(dr);
dr.NextResult(); // Proceed to next resultset
dt2.Load(dr);
Run Code Online (Sandbox Code Playgroud)

DataTable dt1 已成功填充,但 DataTable dt2 仍为空。怎么做。有可能吗?DataReader 第一次使用时会被破坏吗?

Mar*_*ATS 5

非常老的问题,但万一其他人偶然发现了这个......在这个SO答案中找到了答案:如果你使用DataTable.Load()那么你不应该使用rdr.NextResult(),因为这是隐式处理的。只需致电.Load()您的下一张桌子即可。因此,举例来说,如果您有expectedTableCount

ds = new DataSet();
ds.Tables.Add("Table1");
ds.Tables[0].Load(reader);
for (int ii = 1; ii < expectedTableCount; ii++)
{
    ds.Tables.Add("Table" + (ii + 1));
    ds.Tables[ii].Load(reader);
}
Run Code Online (Sandbox Code Playgroud)