LINQ: System.Data.SqlClient.SqlException: строка или двоичные данные будут обрезаны - PullRequest
3 голосов
/ 22 апреля 2011

У меня есть таблица, и я использую ASP.NET MVC для создания объекта и его сохранения. Некоторое время все работало нормально. Как-то недавно я начал получать это сообщение об ошибке на рабочем компьютере:

System.Data.SqlClient.SqlException: строка или двоичные данные будут усечены.

Я не могу повторить ту же ошибку на моей машине для разработки. Есть ли способ узнать, какая колонка вызывает это? Я использую MSSQL 2008 R2 Express.

Ответы [ 2 ]

5 голосов
/ 22 апреля 2011

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

1 голос
/ 22 апреля 2011

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

Вы можете присмотреться к внутреннему исключению, я не знаю точно, но я думаю, что вы найдете там больше информации о столбце, который выдает эту ошибку.И да, вы должны запретить пользователям вставлять слишком длинные значения и поймать это в вашей модели.

Если вы, для чего бы то ни было, не хотите осуществлять дополнительную проверку, вы должны зарегистрировать исключение с контентом, который вы пытались вставить / обновить, а затем сравнить значения с БД.

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