Le passage d'un paramètre à une procédure stockée sql en c#
string commandGetIslemIdleri = ("EXEC GetIslemIdleri");
cmd = new SqlCommand(commandGetIslemIdleri, sqlConn);
cmd.Parameters.Add(new SqlParameter("@CARIID", 110));
using (var reader = cmd.ExecuteReader()) //error occurs here
{
while (reader.Read())
{
islemidleri.Add(reader.GetInt32(0));
}
}
Ci-dessus est le code que j'suis en train d'écrire à l'appel ci-dessous la procédure stockée avec un paramètre CARIID
qui est un entier. lorsque j'exécute le code, une erreur se produit et dit "Procedure or function 'GetIslemIdleri' expects parameter '@CARIID', which was not supplied."
mais autant que je comprends bien les exemples que j'ai lu de ici je vous envoie le paramètre avec ce code cmd.Parameters.Add(new SqlParameter("@CARIID", 110));
j'ai besoin d'aide, merci d'avance.
ALTER PROCEDURE [dbo].[GetIslemIdleri]
@CARIID int
AS
BEGIN
SET NOCOUNT ON;
SELECT ID
FROM TBLP1ISLEM
WHERE TBLP1ISLEM.CARI_ID=@CARIID
END
Avez-vous préciser cmd.CommandType = CommandType.StoredProcedure;
j'ai essayé dix fois, rien n'a changé, mais je vous remercie.
j'ai essayé dix fois, rien n'a changé, mais je vous remercie.
OriginalL'auteur Bastardo | 2011-03-23
Vous devez vous connecter pour publier un commentaire.
Si vous voulez appeler une procédure stockée à l'aide d'un SqlCommand, de ne pas exécuter
EXEC GetIslemIdleri
, exécuterGetIslemIdleri
, réglage CommandType àCommandType.StoredProcedure
:Alors vous avez une erreur ailleurs, dans votre code, j'ai juste testé en local (sur MS SQL 2008 R2), il fonctionne correctement.
merci d'essayer de l'aider, j'analyse mon code.
OriginalL'auteur Mormegil
Vous devez vous assurer que votre SqlCommand est fixé à CommandType.StoredProcedure.
OriginalL'auteur Tejs
vous avez oublié d'ajouter le prodecure nom:
Et n'procédure:
Cela a à travailler.
OriginalL'auteur Mitja Bonca
Régler le paramètre un peu differenty:
SALUT, lire ci-dessous, j'ai posté une nouvelle solution.
OriginalL'auteur Mitja Bonca
Vous n'êtes pas tout à fait appel de la procédure stockée correctement. Vous avez seulement besoin de passer le nom de la procédure stockée (sans exec), définissez le type de commande à la procédure stockée, puis ajouter les paramètres:
OriginalL'auteur Justin Niessner