Mysqlcommand.ExecuteReaderAsync обрабатывает хранимую процедуру, которая может возвращать один или несколько наборов результатов
У меня есть хранимая процедура, которая может вернуть 2 набора результатов, если не было ошибок.
Первый набор просто нормальный select
,
Второй набор содержит код ошибки и сообщение об ошибке, этот набор всегда будет возвращать одну строку. Поскольку ошибки не было, код ошибки будет 0, а сообщение об ошибке будет нулевым.
а также
1 набор результатов, если произошла ошибка. Этот набор содержит только код ошибки и сообщение об ошибке и всегда будет иметь одну строку.
Теперь в C#, когда я вызываю эту хранимую процедуру следующим образом:
var aCommand = new MySqlCommand();
aCommand.CommandText = "my_stored_proc";
aCommand.CommandType = CommandType.StoredProcedure;
aCommand.Parameters.Add("@ErrorCode", MySqlDbType.VarChar);
aCommand.Parameters["@ErrorCode"].Direction = ParameterDirection.Output;
aCommand.Parameters.Add("@ErrorMessage", MySqlDbType.VarChar);
aCommand.Parameters["@ErrorMessage"].Direction = ParameterDirection.Output;
var aReader = await aCommand.ExecuteReaderAsync().ConfigureAwait(false);
aReader
содержит только первый набор результатов, возвращаемых хранимой процедурой.
Мой вопрос, как мне получить другой набор?
1 ответ
Решение
aReader.NextResult(); // returns true if there is another result set