title: How to handle multiple ResultSets, each with multiple Rows? IDataReader.NextResult() ending Read()
body: <p>How to handle multiple ResultSets, each with multiple Rows?
  The call to <code>NextResult()</code> breaks the while loop.</p>
  
  <p>Some of my SPs return multiple ResultSets. I'm handling these with <code>NextResult()</code> but when I do and my SP only has a single ResultSet, I see the while loop with Read() finishes leaving me with only the first Row.</p>
  
  <p>Without the call to <code>NextResult()</code> I get all the rows for the first ResultSet but of course the second and subsequent ResultSets don't get processed?</p>
  
  <pre><code>using (IDataReader reader = storedProcedure.ExecuteReader(
      CommandBehavior.CloseConnection, parameterNames as string[], arguments))
  {
      while (reader.Read())
      {
          ArrayList row = new ArrayList();
          for (int j = 0; j &lt; reader.FieldCount; ++j)
          {
              object rowValue = reader.GetValue(j);
  
              row.Add(rowValue);
          }
  
          reader.NextResult();//next resultset, breaks out of the  while
      }
  }
  </code></pre>