Bonjour,
J'essaye de récupérer la valeur de retour d'une procédure stockée mais impossible d'y avoir accès.

Ma procédure me renvoie 2 résultats de select + la valeur de retour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public SqlDataReader StoredProcedure(string sProcedureName,
 List<string[]> sListeParam)
{
    SqlCommand Command = new SqlCommand(sProcedureName,
 cConnection.cpCurseur);
    Command.CommandType = CommandType.StoredProcedure;
 
    for (int i = 0; i < sListeParam.Count; i++)
    {
        SqlParameter Parametre = Command.Parameters.AddWithValue
(sListeParam[i][0], sListeParam[i][1]);
    }
    SqlParameter Retour = Command.Parameters.Add("ReturnValue",
 SqlDbType.Int);
    Retour.Direction = ParameterDirection.ReturnValue;
 
    OpenConnection();
    return Command.ExecuteReader();
}
Pour acceder aux résultats j'utilise la manière suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
List<string[]> sListeParam = new List<string[]>();
sListeParam.Add(new string[] { "@matricule_ent", sTxt });
sListeParam.Add(new string[] { "@region", "11" });
 
SqlDataReader drReader = cRequete.StoredProcedure(sProcedureName,
 sListeParam);
 
drReader.Read();
MessageBox.Show(drReader.GetValue(drReader.GetOrdinal
("idBranche")).ToString());
 
drReader.NextResult();
drReader.Read();
MessageBox.Show(drReader.GetValue(drReader.GetOrdinal
("nomEntreprise")).ToString());
 
drReader.NextResult();
drReader.Read();
MessageBox.Show(drReader.GetValue(drReader.GetOrdinal("Return
 Value")).ToString());
Or après le 3° NexResult() il ne me trouve plus rien dans mon DataReader.
Avez-vous une petite idée sur la question ?

Merci