ExecuteNonQuery renvoie -1

J'ai une procédure stockée et elle renvoie une valeur de string , et je dois exécuter ce SP en utilisant l'instruction ExecuteNonQuery . Quand j'exécute cela, j'obtiens -1 comme valeur de return.

Je n'ai jamais utilisé SET NOCOUNT ON . Comment puis-je get la valeur de return? Je n'ai pas déclaré la valeur de return en tant que OUTPUT – juste SELECT @VARIABLENAME . Comment puis-je get la valeur en utilisant ExecuteNonQuery ?

ExecuteNonQuery est utilisé pour exécuter des requêtes qui renvoient uniquement le nombre de lignes affectées (bien que les parameters de sortie puissent être remplis). -1 signifie qu'aucune ligne n'a été affectée ou que vous avez activé nocount.

Utilisez un autre appel API si vous avez besoin de lire datatables du sproc.

Si vous ne saisissez qu'une valeur, j'utiliserais la command ExecuteScalar si vous êtes dans une Langage .Net. Je sais que Java et autres ont un équivalent.

http://msdn.microsoft.com/en-us/ibrary/system.data.sqlclient.sqlcommand.executescalar.aspx

ExecuteNonQuery peut get des données de return, si vous avez des parameters de sortie dans votre SP. Cet article explique comment.

http://msdn.microsoft.com/en-us/library/80x06z3b(v=VS.71).aspx

Encore une fois, si vous ne faites que renvoyer une string, ExecuteScalar est plus simple à utiliser.