'Строка или двоичные данные будут проигнорированы' - PullRequest
2 голосов
/ 11 марта 2011

Я использую Entity Framework для вставки деталей в базу данных, где у меня есть столбец varchar (50).когда я пытаюсь вставить какое-то значение длиной более 50, это дает мне строку ошибки, или двоичные данные будут обрезаны. Так, для безопасной стороны я просто изменил его на varchar (100).

Теперь кто-то можетдайте мне знать, это единственное решение для изменения значения в БД, или у нас есть какие-либо альтернативы ....... Я прочитал статью http://sqlblogcasts.com/blogs/danny/archive/2008/01/12/scuffling-with-string-or-binary-data-would-be-truncated.aspx

Но как я могу использовать такие вещи в C #,Я ценю любые предложения от вас .........

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

В зависимости от того, с каким типом поля ввода вы имеете дело, использование varchar (max) может быть вариантом.

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

2 голосов
/ 11 марта 2011

Ну, во-первых, очевидно, что вы не можете вставить строку длиной более 50 в varchar (50).

Таким образом, у вас есть два варианта в зависимости от ваших требований:

  • измените базу данных (как вы узнали) и убедитесь, что весь код «вверх по течению» сможет обрабатывать более длинные данные
  • добавить некоторые проверки или ограничить ввод данных пользователем, так что вы никогда не получите строку, которая являетсядлиннее

Ну, есть третий, который отрезает строку, не сообщая пользователю, но я бы не стал этого делать.

Так что это зависит от требований вашего бизнеса.Но я бы не стал делать никаких «трюков», как в статье, которую вы предложили

0 голосов
/ 11 марта 2011

Вы должны установить длину поля в БД равной разумной длине, и вы должны запретить пользователям вводить значения, которые не соответствуют этой длине.

...