(я знаю, что это старый пост, но, надеюсь, это кому-нибудь пригодится!)
Вы можете сделать что-то вроде следующего, если вам нужно обработать неизвестное количество наборов результатов:
// Need to wrap the while loop in a do-while loop due to the way Read() works versus NextResult().
// Read() moves to the next record, if any, starting with the first record.
// NextResult() moves to the next result set, if any, starting with the second result set (i.e., first result set is used automatically).
do
{
while (mySqlDataReader.Read())
{
// Do some processing here...for example:
var rowValues = new object[mySqlDataReader.FieldCount];
mySqlDataReader.GetValues(rowValues);
foreach (var element in rowValues)
{
myStringBuilder.Append(element).Append(" | ");
}
myStringBuilder.AppendLine();
}
}
while (mySqlDataReader.NextResult());