2011-12-25 4 views
15

Estoy trabajando en una red social, uno de mis procedimientos devuelve una salida VARCHAR. Así que esto es lo que escribió:Tamaño de propiedad tiene un tamaño no válido de 0

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

Sin embargo, este error aparece:

String [1]: Tamaño de la propiedad tiene un tamaño inválido de 0.

+1

+1 complemento - exactamente la misma excepción! – whytheq

Respuesta

32

Es necesario a defina una longitud al especificar el parámetro varchar:

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

Debe usar la misma longitud definida en su procedimiento almacenado de SQL Server.

Y por cierto: si el procedimiento almacenado también tiene longitud definida (algo así como @job VARCHAR OUTPUT) - entonces usted ha definido una serie de longitud 1 carácter varchar ......

+0

Muchas gracias, funcionó :) – RuMoR

+1

+1 (acaba de crear mi pregunta más larga hasta la fecha y luego se redirigió a este QA!) – whytheq

0

Sí, tiene que definir la longitud para varchar/nvarchar tipo de datos como a continuación.

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