Что означает предупреждение?
это когда ты вставляешь длииинную строку в короткое поле, и она обрезается.
Но где это может быть? При передаче параметра в C# или уже при вставке значения в таблицу?
Уже при вставке. Это из sql'я ошибка.
А как она могла появиться, когда работала раньше без проблем? Как узнать, где возникает? У меня все столбики в таблице только Int, DateTime, Float и VarChar...
VarChar
Parameter VarChar(50) -> Parameter VarChar(100)?
Это зависит от твоего контента. Можешь попробовать сделать Varchar(max если по этому полю нет и не будет индекса.
Спасибо огромное! Ты всегда очень быстро и доступно отвечаешь! Потом всё так просто кажется...
Проверить длину или принудительно ограничить поле и проинформировать пользователя ДО записи и предоставить ему возможность отредактировать данные снова, а не писать их базу.
Разрешите, "апну" тему. Ошибка "Object cannot be cast from DBNull to other types" появляется уже в C# или в SQL? Как от нее избавиться? Где и какие ограничения можно наложить на исходные данные или на те, которые выводятся уже в результат?
Object cannot be cast from DBNullзначит из базы возвращается null, а ты пытаешься конвертировать его в значение (в число или строку, например)
Можно ли в код добавить некоторый условный оператор: если NULL, то просто не беру из базы данные, если не NULL, то конвертировать? Возможно ли? Есть другие методы, более лёгкие или более оптимальные?
Поправь запрос в базе и не выбирай из нее null'ы
isnull(PossibleNullField, '')
isnull(PossibleNullField, 0) - какой там тип требуется
ну или добавить на выборку в where clause
where PossibleNullField is not null
Всем большое спасибо!
Оставить комментарий
maximovega
Вызываю в C# процедуру на SQL-сервере и сталкиваюсь с проблемой.Что означает предупреждение String or binary data would be truncated?