Ситуация с турецким символом SQL Server

У меня проблема с турецким символом в ASP.NET и SQL Server. У меня есть окно поиска в asp.net и я пытаюсь выполнить поиск в базе данных. Однако у меня проблемы с турецкими символами. Когда я ищу «GALVANİZ», который содержит недопустимый символ «İ». слово "GALVANİZ" есть в базе данных, я уверен.

Когда я делаю простой оператор выбора в инструменте SQL Server, он также ничего не возвращает.

Вот SQL

select * from Product where name like '%GALVANİZ%'

Это ничего не возвращает. Как я могу это исправить?

спасибо


person Arif YILMAZ    schedule 27.03.2013    source источник
comment
Какую сортировку вы используете? Это Turkish_CI_AI?   -  person Martin    schedule 28.03.2013
comment
Я не делал никаких сопоставлений. Должен ли я выбирать сопоставление при создании таблиц? или я должен сделать это при выборе?   -  person Arif YILMAZ    schedule 28.03.2013
comment
Вы можете сделать и то, и другое. Вы также можете попробовать свой запрос, подобный этому where name like N'%GALVANİZ%', с N перед символами, чтобы указать Unicode.   -  person Martin    schedule 28.03.2013
comment
большое спасибо. это работает, но можете ли вы дать мне более правильный способ сделать это? как лучше всего это сделать?   -  person Arif YILMAZ    schedule 28.03.2013
comment
Убедитесь, что вы используете текст Unicode в своих запросах (путем добавления символа 'N' перед строкой), чтобы указать, что текст должен обрабатываться как Unicode. Я добавлю, что это правильный ответ (чтобы вы могли пометить его как ответ).   -  person Martin    schedule 28.03.2013


Ответы (2)


Вы можете указать сопоставление в своем запросе, например Turkish_CI_AI, или, альтернативно, использовать символ «N» со своими строками, чтобы указать, что они являются Unicode, например:

select * from Product where name like N'%GALVANİZ%'
person Martin    schedule 27.03.2013
comment
Я отмечу это через 5 минут. когда я делаю выбор в инструменте mssql, он работает. но когда я делаю это в коде С#, это не работает. почему вы думаете, что это не работает в коде С# - person Arif YILMAZ; 28.03.2013
comment
Не могли бы вы обновить свой исходный вопрос кодом С#, который вы используете, чтобы я мог взглянуть на него? Спасибо! - person Martin; 28.03.2013

Я тоже решил вопрос сам. вот решение

select * from product where name like N'%GALVANi%' collate Turkish_CI_AS

это гораздо лучшее решение

person Arif YILMAZ    schedule 27.03.2013