Wie werden mehrere ResultSets mit jeweils mehreren Zeilen behandelt? IDataReader.NextResult () endet mit Read ()

Wie werden mehrere ResultSets mit jeweils mehreren Zeilen behandelt? Der Aufruf anNextResult() unterbricht die while-Schleife.

Einige meiner SPs geben mehrere ResultSets zurück. Ich behandle diese mitNextResult() aber wenn ich das tue und mein SP nur ein einziges ResultSet hat, sehe ich, dass die while-Schleife mit Read () beendet wird und ich nur die erste Zeile habe.

Ohne den Anruf anNextResult() Ich erhalte alle Zeilen für das erste ResultSet, aber das zweite und nachfolgende ResultSet werden natürlich nicht verarbeitet?

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
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage