Mysqlcommand.ExecuteReaderAsync 处理可以 return 一个或多个结果集的存储过程
Mysqlcommand.ExecuteReaderAsync handle stored procedure that can return one or more result sets
我有一个存储过程,如果没有错误,它可以 return 2 组结果。
第一组只是普通的select
。
第二组包含错误代码和错误信息,这一组总是return一行。由于没有错误,错误代码将为 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
仅包含由存储过程 return 编辑的第一组结果。
我的问题是如何获得另一套?
aReader.NextResult(); // returns true if there is another result set
我有一个存储过程,如果没有错误,它可以 return 2 组结果。
第一组只是普通的select
。
第二组包含错误代码和错误信息,这一组总是return一行。由于没有错误,错误代码将为 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
仅包含由存储过程 return 编辑的第一组结果。
我的问题是如何获得另一套?
aReader.NextResult(); // returns true if there is another result set