2016-10-05 3 views
0

J'ai une procédure stockée qui pourrait renvoyer 2 ensembles de résultats s'il n'y avait pas d'erreurs. Le premier ensemble est juste un select normal.Mysqlcommand.ExecuteReaderAsync gérer procédure stockée qui peut retourner un ou plusieurs ensembles de résultats

Le deuxième ensemble contient le code d'erreur et le message d'erreur, cet ensemble renverra toujours une ligne. Comme il n'y avait pas d'erreur, le code d'erreur sera 0 et le message d'erreur sera nul.

et

1 jeu de résultats si une erreur est survenue. Cet ensemble contient seulement le code d'erreur et le message d'erreur, et aura toujours une ligne.

Maintenant en C#, quand je l'appelle cette procédure stockée comme ceci:

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 ne contient que la première série des résultats renvoyés par la procédure stockée.

Ma question est comment puis-je obtenir l'autre ensemble?

Répondre

2
aReader.NextResult(); // returns true if there is another result set