Member 14785752 Ответов: 1

Sqlexception: строковые или двоичные данные будут усечены.


В настоящее время у меня есть ASP.NET основное приложение (Visual Studio 2019), которое подключается к локальной базе данных и затем выводит эти данные в таблицу. Пользователи могут редактировать, просматривать детали одной отдельной записи, а также удалять записи. Еще одна вещь, которую они должны уметь делать, - это создавать новую запись. Когда я заполняю форму для добавления новой записи, появляется следующее сообщение об ошибке:

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

Я знаю, что люди говорят, что это обычно означает, что вы пытаетесь ввести слишком много информации для того, что может обрабатывать база данных. Например, если бы в поле базы данных был VARCHAR(10), но я попытался вставить 15 символов, то он отобразил бы полученную ошибку. Тем не менее, я попытался ввести запись, которая точно такая же, как та, которая уже находится в базе данных, поэтому она должна технически работать. Есть ли какие - то другие причины такого рода проблем?

Что я уже пробовал:

Я дважды проверил все наборы символов моей базы данных, и все они должны принимать то, что вставляется в форму Create New.

1 Ответов

Рейтинг:
2

OriginalGriff

Именно это оно и означает. Данные, которые вы отправляете, больше, чем размер поля.
That is because you are sending too much data, which - if you read the data out first and then tried to INSERT or UPDATE the same info either means that your code (which we can't see) is passing the data incorrectly so the DB doesn't "see" what you think it does; or the data is getting changed between the read and the write - which could be down to a number of things (which again we can't see). Try looking at the DB design: is the column you are inserting VARCHAR or NVARCHAR? The latter is "wider" because it uses Unicode, as do most modern languages - so if you are reading a VARCHAR column into a Unicode app and writing it back to a VARCHAR column, the result may exceed 10 characters.

Но у нас нет доступа ни к вашему коду, ни к вашей БД, поэтому мы действительно не можем дать вам ничего более конкретного для работы.