SQL-данные не получены в Unicode хинди

Я разрабатываю веб-приложение в ASP.NET с C #. Я сохраняю данные в таблицах SQL как символ Unicode, как указано в Google Transliteration. Я должен использовать хинди. У меня нет проблем с добавлением данных. Но когда я использую инструкции «SELECT», в любом случае данные из таблиц базы данных не извлекаются.

Мой запрос выглядит следующим образом:

SELECT        uid, family_head, member_name, house_no, address, f_h_name, gender, caste, dob, occupation, literacy, end_date
FROM            family
WHERE        (member_name = 'समर्थ अग्रवाल')

Он возвращает null.

2
nl ja de
это тип данных для member_name nvarchar?
добавлено автор Arshad, источник
Он отлично работает, если я не использую предложение WHERE. В этом случае возвращаются все строки. Моя БД - MS SQL DB 2008, и она хранит все данные без проблем.
добавлено автор Samarth Agarwal, источник
да, это nvarchar.
добавлено автор Samarth Agarwal, источник
Если вы передали значение для поиска в качестве параметра , а не вставляли его в запрос в виде строкового литерала, у вас не было бы этой проблемы - и это хорошая практика.
добавлено автор Damien_The_Unbeliever, источник
Убедитесь, что используемая вами база данных кодируется в кодировке UTF-8, так что она будет хранить символы с других языков.
добавлено автор Vallabh Patade, источник

1 ответы

Измените строку, чтобы начать с N , чтобы обозначить ее как строку Unicode:

SELECT        uid, family_head, member_name, house_no, address, f_h_name, gender, caste, dob, occupation, literacy, end_date
FROM            family
WHERE        (member_name = N'समर्थ अग्रवाल')

В противном случае строка не будет строкой Unicode, и запрос не вернет никаких результатов.

См. Константы (Transact-SQL) в MSDN:

Строки Unicode

     

Строки Unicode имеют формат, аналогичный строкам символов, но им предшествует идентификатор N (N обозначает национальный язык в стандарте SQL-92). Префикс N должен быть прописным. Например, «Michél» является символьной константой, а N'Michél - константой Unicode. Константы Unicode интерпретируются как данные Unicode и не оцениваются с помощью кодовой страницы.

5
добавлено
Спасибо, это сработало. На самом деле, я попытался поставить «n», но не «N».
добавлено автор Samarth Agarwal, источник
@Samarth - это должен быть верхний регистр N .
добавлено автор Oded, источник
@AtulPhadtare - Ну, я не знаю ваших конкретных обстоятельств. ОП сказал, что столбцы NVARCHAR в базе данных - ваши? Вы уверены, что строка, которую вы ищете, существует в обычном столбце?
добавлено автор Oded, источник
@Atul - Скорее всего, что таблица не содержит этих данных.
добавлено автор Oded, источник
@Atul - Если ваше предложение WHERE для элементов, которые не существуют в базе данных, оно ничего не вернет.
добавлено автор Oded, источник
@Oded Как добавить N с параметром в моей процедуре магазина? Я попытался использовать 'N' + @ myAddress , но он не работает.
добавлено автор mmushtaq, источник
Я также сталкиваюсь с проблемой. Я пробовал решение выше, но оно не работает. Он возвращает null.
добавлено автор Atul Phadtare, источник
@ Oded-I m с использованием nvarchar (max). Мой запрос выглядит так: select * from tbl_hindi, где student = N 'समर्थ'.
добавлено автор Atul Phadtare, источник
@ Oded-whwn Я пытаюсь «выбрать * из tbl_hindi», тогда он показывает все записи правильно, но когда я использую «где», тогда его не работает ...
добавлено автор Atul Phadtare, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)