Как подготовить оператор ADO.NET, который включает параметр NText (clob) - PullRequest
1 голос
/ 19 ноября 2010

Я обновляю существующее приложение, которое использует фабрику для создания подготовленных операторов, а затем выполняю их позже, что работает для остальной системы, но мне было поручено добавить вызов в оператор, который используетNText, и я не могу понять, как правильно подготовить заявление.Я получаю сообщение об ошибке во время выполнения «SqlCommand.Prepare метод требует, чтобы все параметры переменной длины имели явно установленный ненулевой размер».но я не уверен, какое значение использовать для длины

Образец обязательного кода:

SqlCommand update = new SqlCommand("UPDATE Log.Response_File_Log " +
  "SET File = @File " +
  ", DateFileReceived = GETDATE() " +
  "WHERE RunID = @RunID", _connection);
update.Parameters.Add(new SqlParameter("@File", SqlDbType.NText));
update.Parameters.Add(new SqlParameter("@RunID", SqlDbType.Int));
update.Prepare();

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Не использовать NTEXT, является устаревшим типом . Если в вашей базе данных есть столбец NTEXT, измените его на VARBINARY(MAX). Используйте -1 для MAX длина параметров типа: (...,SqlDbType.Varbinary, -1).

0 голосов
/ 19 ноября 2010

Можете ли вы установить длину данных, передаваемых в параметр @File?Это всего лишь предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...