Come gestire più ResultSet, ciascuno con più righe? La chiamata a NextResult() interrompe il ciclo while.Come gestire più ResultSet, ciascuno con più righe? IDataReader.NextResult() ending Read()
Alcuni dei miei SP restituiscono più ResultSet. Li sto gestendo con NextResult() ma quando lo faccio e il mio SP ha un solo ResultSet, vedo che il ciclo while con Read() termina lasciandomi solo con la prima riga.
Senza la chiamata a NextResult() ottengo tutte le righe per il primo ResultSet ma ovviamente il secondo e successivi ResultSet non vengono elaborati?
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
}
}
bello su Tomas. – learnerplates
Questo è stato fantastico. Raramente ho incontrato raramente loop di do-while che ho dimenticato che esisteva e quindi non ho mai pensato di usarne uno fino a quando non lo avessi visto. Grazie! – KSwift87
Punto perfetto per una struttura do/while – pimbrouwers