Exécuter la Procédure Stockée SQL Server avec SqlHelper.ExecuteDataSet() et Obtenir la Valeur de Retour
J'ai un SQL Server Stored Procedure
. Cette procédure ont un paramètre de sortie.
Sur mon C#.NET
Calendrier, j'exécute cette procédure via SqlHelper.ExecuteDataSet()
et retourne le résultat d'une requête DataSet
.
Comment puis-je obtenir le paramètre de sortie de la procédure stockée procédure lors de l'utilisation SqlHelper.ExecuteDataSet()
.
Certains article dit que j'ai besoin d'utiliser SqlHelper.ExecuteNonQuery()
mais j'ai besoin de la DataSet
trop.
C'est mon code:
public DataSet GetDataPerTable(string spName, string a, string b, out int c)
{
try
{
c = 0;
SqlParameter[] spParameter = new SqlParameter[3];
spParameter[0] = new SqlParameter("@a", SqlDbType.Char, 4);
spParameter[0].Direction = ParameterDirection.Input;
spParameter[0].Value = a;
spParameter[1] = new SqlParameter("@b", SqlDbType.Char, 1);
spParameter[1].Direction = ParameterDirection.Input;
spParameter[1].Value = b;
spParameter[2] = new SqlParameter("@c", SqlDbType.Int);
spParameter[2].Direction = ParameterDirection.ReturnValue;
c = Convert.ToInt32(spParameter[2].Value);
return SqlHelper.ExecuteDataset(Configuration.MyConnectionString, CommandType.StoredProcedure, spName, spParameter);
}
catch (Exception ex)
{
throw ex;
}
}
Mon c
variable retourne toujours 0. Une Idée? Merci d'avance 🙂
Ma Procédure est comme ceci:
CREATE PROCEDURE [dbo].SPR_MyProcedure (@a Char(4), @bChar(1), @c Int Output)
SELECT *
FROM MyTable
Set @c = 1
Vous devez vous connecter pour publier un commentaire.
@c
n'est pas une valeur de retour, c'est un paramètre de sortieChangement
à
Aussi, vous devez définir votre
c
variable après l'appel àExecuteDataset
par exemple:
Vous devez utiliser
ParameterDirection.Output
pour le paramètrec
.voir Obtenir la valeur de paramètre de sortie dans ADO.NET
ParameterDirection.ReturnValue
est une valeur de retour de l'ensemble de la procédure stockée, 0 par défaut ou une valeur spécifiée dans l'instruction RETURN.SqlHelper.ExecuteDataSet ne marche pas, retour de paramètre de sortie. voir ce lien
http://www.mediachase.com/documentation/fileuploader/Api/Mediachase.FileUploader.SqlHelper.ExecuteDataset_overload_5.html
pour le paramètre de sortie dans chaque exemple, ils r à l'aide de la méthode ExecuteNonQuery
voir ces aticles pour la sortie prameter
http://forums.asp.net/t/360456.aspx/1
http://www.codeproject.com/Articles/15666/Data-Access-Application-Block-NET-2-0-Get-Return-V
j'espère que cela peut aider u