Проблема с сохранением данных кириллицы в базе данных sqlexpress

#asp.net #sql #sql-server #entity-framework #sql-server-express

#asp.net #sql #sql-сервер #entity-framework #sql-server-express

Вопрос:

Я использую .net entity Framework, asp.net у mvc, sqlexpress и есть одна проблема:

при сохранении данных в таблицу базы данных sqlexpress (что-то вроде этого само да пробам ) в этой таблице у меня есть это ???? ?? ??????. В столбце, куда вставляются данные кириллицы, я установил параметры сортировки:Serbian_Cyrillic_100_CI_AI.

Ответ №1:

Типом данных столбца должен быть nvarchar (который является Unicode).

Комментарии:

1. @Richard Schneider : Я использую текст, а не nvarchar. Является ли nvarchar хорошей заменой текстовому типу данных

2. @user — Да. text не рекомендуется, но это не совсем правильный ответ. Вы можете сохранить их в столбце, отличном от юникода, при условии, что параметры сортировки установлены правильно, но необходимо избегать их приведения к параметрам сортировки вашей базы данных по умолчанию. CREATE TABLE #T (C TEXT COLLATE Serbian_Cyrillic_100_CI_AI); INSERT INTO #T VALUES (N'само да робам'); SELECT * FROM #T

3. На самом деле, если вам нужна поддержка Unicode, используйте NTEXT — или еще лучше (поскольку TEXT / NTEXT устарели): NVARCHAR(MAX)