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.
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 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(); }
Or après le 3° NexResult() il ne me trouve plus rien dans mon DataReader.
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());
Avez-vous une petite idée sur la question ?
Merci
Partager