Свойство размера имеет недопустимый размер 0
Я работаю в социальной сети, одна из моих процедур возвращает вывод VARCHAR. Так вот что я написал:
SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar);
job1.Direction = ParameterDirection.Output;
Однако эта ошибка появляется:
Строка [1]: свойство Size имеет недопустимый размер 0.
4 ответа
Вы должны определить длину при указании varchar
параметр:
SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar, 50);
Вы должны использовать ту же длину, которая определена в вашей хранимой процедуре SQL Server.
И кстати: если ваша хранимая процедура также не имеет определенной длины (что-то вроде @job VARCHAR OUTPUT
) - тогда вы определили varchar
строка длиной 1 символ......
Да, нужно определить длину для varchar
/ nvarchar
Тип данных, как показано ниже.
cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction =
ParameterDirection.Output;
Если вы используете Dapper, вы передали для параметра нулевое значение, где ожидаемым вводом была строка.
Чтобы найти ошибочное значение и его параметр, проверьте объект Dapper DynamicParameters во время сеанса отладки и откройте параметры, на которые ссылается индекс.
Назначьте пустую строку выходному параметру перед вызовом хранимой процедуры, и это должно избавиться от ошибки:
задание1.Значение = строка.Пустой;