ALTER PROCEDURE [dbo].[GetIslemIdleri] @CARIID int AS BEGIN SET NOCOUNT ON; SELECT ID FROM TBLP1ISLEM WHERE TBLP1ISLEM.CARI_ID=@CARIID END
5 Réponses :
Définissez le paramètre un peu différent:
cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@CARIID", SqlDBType.Int).Value = 110;
Vous devez vous assurer que votre SQLCOMMAND est défini sur COMMANDTYPE.SToredProcédrique.
cmd.CommandType = CommandType.StoredProcedure
Si vous souhaitez appeler une procédure stockée à l'aide d'un SQLCOMMAND, n'exécutez pas EXEC GETATISLEMIDLERI code>, exécutez juste
getSideMidleri code>, réglage CommandType à
CommandType.StoredProcède CODE>:
cmd = new SqlCommand("GetIslemIdleri", sqlConn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@CARIID", 110));
using (var reader = cmd.ExecuteReader()) //error occurs here
{
while (reader.Read())
{
islemidleri.Add(reader.GetInt32(0));
}
}
J'ai essayé cela comme huit fois, rien n'a changé mais merci.
@Emreveriyaz - alors vous avez une erreur ailleurs dans votre code, je viens de la tester localement (sur MS SQL 2008 R2), cela fonctionne correctement.
Pourrait également essayer le raccourci pour définir des paramètres maintenant cmd.parameters.addvithavalue ("@ paramètre", quelqueValue); code>
Vous n'appelez pas tout à fait la procédure stockée correctement. Il vous suffit de transmettre le nom de la procédure stockée (sans EXEC), définissez le type de commande sur la procédure stockée, puis ajoutez les paramètres suivants:
var command = new SqlCommand("GetIslemIdleri", conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@CARIID", 110));
J'ai essayé cela comme sept fois, rien n'a changé mais merci.
Vous avez oublié d'ajouter le nom de la procédure: et faire la procédure comme: p> Ceci doit fonctionner. < / p> p>
merci mitja. J'ai résolu le problème que c'était en fait causé par une valeur nulle dans ma base de données, ce qui cause que le lecteur soit défini sur NULL et cette erreur se produise.
Avez-vous spécifié cmd.commandtype = CommandType.StoredProcedure;
J'ai essayé cela comme dix fois, rien n'a changé mais merci.