Свойство size имеет недопустимый размер 0 - PullRequest
32 голосов
/ 25 декабря 2011

Я работаю в социальной сети, одна из моих процедур возвращает вывод VARCHAR.Вот что я написал:

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

Однако появляется эта ошибка:

Строка [1]: свойство Size имеет недопустимый размер 0.

Ответы [ 2 ]

59 голосов
/ 25 декабря 2011

Вам необходимо определить длину при указании параметра varchar:

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

Вы должны использовать ту же длину, которая определена в вашей хранимой процедуре SQL Server.

И кстати: если ваша хранимая процедура также не имеет определенной длины (что-то вроде @job VARCHAR OUTPUT) - тогда вы определили строку varchar длиной 1 символ ......

1 голос
/ 23 февраля 2017

Да, необходимо определить длину для типа данных varchar / nvarchar, как показано ниже.

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