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 содержит только первый набор результатов, возвращаемых хранимой процедурой.

У меня вопрос, как мне получить другой набор?


person Vibol    schedule 05.10.2016    source источник