2011-12-25 4 views
15

Je travaille sur un réseau social, une de mes procédures renvoie une sortie VARCHAR. Donc, voici ce que je l'ai écrit:La propriété de taille a une taille invalide de 0

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar); 
job1.Direction = ParameterDirection.Output; 

Cependant cette erreur apparaît:

String [1]: la propriété Taille a une taille non valide de 0.

+1

+1 snap - exactement la même exception! – whytheq

Répondre

32

Vous avez besoin à définir une longueur lors de la spécification du paramètre varchar:

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar, 50); 

Vous devez utiliser la même longueur que celle définie dans votre procédure stockée SQL Server.

Et BTW: si votre procédure stockée n'a pas non plus longueur définie (quelque chose comme @job VARCHAR OUTPUT) - alors vous avez défini une chaîne varchar de 1 longueur de caractère ......

+0

Merci beaucoup, cela a fonctionné :) – RuMoR

+1

+1 (juste créé ma question la plus longue à ce jour et a ensuite été redirigé vers ce QA!) – whytheq

0

Oui, doivent définir la longueur pour varchar/nvarchar type de données comme ci-dessous.

cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction = 
    ParameterDirection.Output; 
Questions connexes