Jak obsługiwać wiele zestawów wyników, każdy z wieloma wierszami? Wywołanie funkcji NextResult() powoduje przerwanie pętli while.Jak obsługiwać wiele zestawów wyników, każdy z wieloma wierszami? IDataReader.NextResult() ending Read()
Niektóre z moich SP zwracają wiele ResultSet. Zajmuję się nimi za pomocą funkcji NextResult(), ale kiedy to robię, a mój SP ma tylko jeden zestaw wyników, widzę, że pętla while z Read() kończy, zostawiając mnie tylko z pierwszym wierszem.
Bez wywołania funkcji NextResult() otrzymuję wszystkie wiersze dla pierwszego zestawu wyników, ale oczywiście drugi i kolejne zestawy wyników nie są przetwarzane?
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
}
}
miłe na Tomas. – learnerplates
To było świetne. Rzadko spotykam się z pętlami do-while, o których istnieniu zapomniałem, a więc nigdy nie pomyślałem o tym, dopóki tego nie zobaczę. Dziękuję Ci! – KSwift87
Idealne rozwiązanie dla struktury do/while – pimbrouwers