Hello,
j'appelle une procédure stockée (complexe, pas un simple insert & cie) et j'aimerais récupérer une valeur de retour (code erreur déterminé dans la procédure stockée).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ALTER PROCEDURE [dbo].[ma_proc] ... @CODE_RETOUR integer OUTPUT AS ... SELECT @CODE_RETOUR = 666Mais ret vaut -1 : ça ne me choque pas, vu qu'apparemment c'est censé retourner un "nombre de lignes affectées", ce qui n'a pas de sens ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SqlCommand sqlCmdImportAppli = new SqlCommand(); sqlCmdImportAppli.CommandType = CommandType.StoredProcedure; sqlCmdImportAppli.CommandText = "[ma_proc]"; sqlCmdImportAppli.Connection = ConnexionBD; ... SqlParameter sqlPrmCodRet = sqlCmdImportAppli.Parameters.Add("CODE_RETOUR", SqlDbType.Int); sqlPrmCodRet.Direction = ParameterDirection.ReturnValue; int ret = sqlCmdImportAppli.ExecuteNonQuery(); int codErr = Convert.ToInt32(sqlCmdImportAppli.Parameters["CODE_RETOUR"].Value);
Mais codErr vaut 0, et pas 666 comme attendu.
Quelqu'un peut m'aider ? Je ne trouve rien à ce sujet sur le net.
Partager