【发布时间】:2011-04-19 22:07:56
【问题描述】:
如何处理多个结果集,每个结果集都有多个行?
对 NextResult() 的调用会中断 while 循环。
我的一些 SP 返回多个 ResultSet。我正在使用NextResult() 处理这些,但是当我这样做并且我的 SP 只有一个 ResultSet 时,我看到带有 Read() 的 while 循环完成后,我只剩下第一行。
如果不调用 NextResult(),我会得到第一个 ResultSet 的所有行,但当然不会处理第二个和后续 ResultSet?
using (IDataReader reader = storedProcedure.ExecuteReader(
CommandBehavior.CloseConnection, parameterNames as string[], arguments))
{
while (reader.Read())
{
ArrayList row = new ArrayList();
for (int j = 0; j < reader.FieldCount; ++j)
{
object rowValue = reader.GetValue(j);
row.Add(rowValue);
}
reader.NextResult();//next resultset, breaks out of the while
}
}
【问题讨论】:
标签: c# stored-procedures datareader