Не могу сохранить корейскую строку в базе данных, используя LINQ - PullRequest
0 голосов
/ 22 февраля 2010

Я использую этот код для хранения корейской строки в моей базе данных:

<code>
Dim username As String = Request.QueryString.Get("Some Korean String")
Using dg As New DataContext()
Dim newfriend As New FriendsTable With {.AskingUser = User.Identity.Name, .BeingAskedUser = username, .Pending = True}
dg.FriendsTables.InsertOnSubmit(newfriend)
dg.SubmitChanges()
end using
Проверяя мою базу данных, имя пользователя хранится в строке "????" ... Кто-нибудь понял, как это произошло или какие-либо обходные пути?

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Какова ваша база данных сопоставления? Можете ли вы хранить корейские строки с любой другой технологией доступа к данным? Каков тип столбца с именем пользователя и точно ли он сопоставлен в LINQ to SQL?

Я подозреваю, что что-то в базе данных настроено неправильно, чтобы разрешить полный Unicode. Я очень сомневаюсь, что это как-то связано с самой LINQ.

Другая вещь, которую нужно проверить, это то, что вы на самом деле получаете правильные данные. Часто есть несколько мест, где что-то может пойти не так - вам нужно проверить каждое место отдельно, чтобы увидеть, где данные повреждены. У меня есть короткая статья об этом , которая может оказаться вам полезной.

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

Звучит так, как будто вы храните корейский текст в столбце varchar / text, в котором не используется корейская сортировка. Самое простое решение - изменить тип столбца на nvarchar / ntext.

Типы столбцов nchar хранят данные Unicode, тогда как типы char и varchar хранят однобайтовые символы в указанном сопоставлении.

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