Как сохранить текст с многострочными разделителями в базу данных? - PullRequest
1 голос
/ 22 февраля 2012

У меня есть текст,

* 1003 например *

line one \r\n
line two \r\n
line threee.

В моей базе данных у меня есть столбец, определенный как тип text, затем я использую Entity Framework для сопоставления этого столбца, код, сгенерированный Entity Framework, имеет тип string

Я могу успешно сохранить этот текст в столбце в базе данных. Однако из Management Studio я не мог видеть эти разделители строк, когда я копирую значение и вставляю его в блокнот, они становятся одной строкой текста.

Кто-нибудь знает, в чем проблема?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 22 февраля 2012

Проблема в том, что Management Studio поддерживает не все символы. Он удаляет разрывы строк при копировании значения.

Если вы измените результат с сетки на текст (Query -> Results To -> Results to text или ctrl + T ) и выберите значение, вы увидите что текст выходит в виде отдельных строк.

0 голосов
/ 22 февраля 2012

Вы должны придерживаться NVarchar, когда речь идет о хранении текстовых данных (одна из причин в том, что он поддерживает больше символов).Вот выдержка из msdn:

"типы данных ntext, text и image будут удалены в будущей версии Microsoft SQL Server. Избегайте использования этих типов данных в новых разработках и планируйте изменениеприложения, которые в настоящее время используют их. Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max) ".

Дополнительная информация:

0 голосов
/ 22 февраля 2012

Это может быть просто проблемой со студией управления. Попробуйте запросить базу данных из C # и распечатать значение поля. Вы сразу увидите, есть ли CRLF.

...