2011-12-25 5 views
15

Sto lavorando su un social network, una delle mie procedure restituisce un output VARCHAR. Quindi questo è quello che ho scritto:La proprietà dimensione ha una dimensione non valida di 0

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

Tuttavia questo errore viene in su:

String [1]: la proprietà Size ha una dimensione non valida di 0.

+1

+1 snap: esattamente la stessa eccezione! – whytheq

risposta

32

È necessario a definire una lunghezza quando si specifica il parametro varchar:

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

È necessario utilizzare la stessa lunghezza definita nella stored procedure di SQL Server.

E btw: se la tua stored procedure inoltre non ha lunghezza definita (si parla di @job VARCHAR OUTPUT) - allora hai definito una stringa di lunghezza 1 carattere varchar ......

+0

Grazie mille, ha funzionato :) – RuMoR

+1

+1 (ho appena creato la mia domanda più lunga fino ad ora e sono stato poi reindirizzato a questo QA!) – whytheq

0

Sì, devono definire la lunghezza per il tipo di dati varchar/nvarchar come di seguito.

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