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 第一次使用时会被破坏吗?
非常老的问题,但万一其他人偶然发现了这个......在这个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)
| 归档时间: |
|
| 查看次数: |
3181 次 |
| 最近记录: |