Форум программистов, компьютерный форум CyberForum.ru

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
Scrypto
57 / 57 / 10
Регистрация: 08.02.2013
Сообщений: 291
#1

SQLite Не ищет по базе, кириллические слова - C#

02.01.2017, 14:02. Просмотров 205. Ответов 6
Метки нет (Все метки)

Функция поиска
C#
1
2
3
4
 void SearchEngene(string what, string where){
         var db = new SQLiteConnection(@"sql.db", true);
         var klients = db.Query<Klient>("SELECT * From Klient WHERE "+where +" LIKE '" + Utf8Converter(what) + "%'");
}
Функция перекодировки в utf8
C#
1
2
3
4
5
6
 string Utf8Converter(string nonutf8)
        {
            byte[] br = Encoding.UTF8.GetBytes(nonutf8);
            string utf8 = Encoding.UTF8.GetString(br, 0, br.Length);
            return utf8;
        }
По английски все хорошо ищет, по русски вообще нет. Как победить проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2017, 14:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLite Не ищет по базе, кириллические слова (C#):

Не ищет в базе - PHP БД
Такая проблемка: if ($_POST &amp;&amp; $_POST) { $username = $_POST; //Передаём логин переменной $password_hash = md5($_POST);...

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

Поиск в базе данных, не до конца ищет - Delphi БД
Ребят прошу помочь, я сделал поиск в базе, но у меня находит только первое значение, а второе не хочет искать, а мне надо что бы при...

Не ищет русский текст по запросу в базе - PHP БД
Добрый вечер. Имеется: база в UTF8; страница с которой вводится текст поиска тоже UTF8; и запись в базу русского текста из...

Приложение при автозагрузке обращается к базе и ищет её в системной папке System32 - Visual Basic .NET
VB 2010, база access. Connection string задается с использованием относительного пути: &quot;Provider=Microsoft.ACE.OLEDB.12.0;Data...

Не ищет русские слова/буквы - PHP БД
Всем привет,делал поиск для сайта все хорошо работает, кроме того что он отказывается искать именно русские запросы и выдает ошибку на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pincet
1241 / 811 / 86
Регистрация: 23.07.2010
Сообщений: 4,138
02.01.2017, 14:42 #2
навалить сиквелу на ваши конвертеры. Поле должно быть nchar и пользоваться примерно так

T-SQL
1
where MyPleasure like N'%Моя прелесть%'
Добавлено через 13 минут
сорри, не увидел SQLite
Scrypto
57 / 57 / 10
Регистрация: 08.02.2013
Сообщений: 291
02.01.2017, 14:42  [ТС] #3
pincet, то есть если поля varchar то искать не будет?
И что за буква N после like?
T-SQL
1
where MyPleasure like N'%Моя прелесть%'
OwenGlendower
Модератор
Эксперт .NET
6643 / 5621 / 2060
Регистрация: 17.03.2014
Сообщений: 10,742
Записей в блоге: 1
02.01.2017, 14:52 #4
Scrypto, похоже sqlite не поддерживает поиск по unicode строкам. Необходимо устанвливать расширение ICU (Хабр - SQLite и полноценный UNICODE).

Цитата Сообщение от Scrypto Посмотреть сообщение
Функция перекодировки в utf8
Эту функцию правильнее назвать DoNothing т.к. она не делает ничего полезного.
Scrypto
57 / 57 / 10
Регистрация: 08.02.2013
Сообщений: 291
02.01.2017, 16:41  [ТС] #5
OwenGlendower, что-то не понимаю совсем, как и что нужно сделать, чтобы была поддержка unicode. Смотрел на других сайтах, у пользователей она все таки ищет, но только с учетом регистра, а у меня вообще не выдает ничего, даже если регистр совпадает (

Добавлено через 30 минут
Или можешь посоветовать другую бд, с которой таких проблем не будет ?
OwenGlendower
Модератор
Эксперт .NET
6643 / 5621 / 2060
Регистрация: 17.03.2014
Сообщений: 10,742
Записей в блоге: 1
03.01.2017, 10:19 #6
Scrypto, я не спец по SQLite. В качестве замены могу посоветовать SQL Server.
Scrypto
57 / 57 / 10
Регистрация: 08.02.2013
Сообщений: 291
03.01.2017, 13:36  [ТС] #7
Разобрался, я использовал using.sqlite; А надо было using.system.data.sqlite; Это в nuget пакетах еще при установке, я лишний пакет добавил, и им пользовался, с официальным нормально, все ищет. Только переделать под его синтаксис все пришлось
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2017, 13:36
Привет! Вот еще темы с ответами:

Index Server не ищет русские слова - C# ASP.NET
Ситуация такая: у меня на моей машине (NT4) все каталоги отлично работают - ищутся русские слова и звездочки взамен произвольного кол-ва...

Программа сравнивает строки ищет одинаковые слова - Pascal
Помогите пожалуйста) Программа сравнивает строки ищет одинаковые слова (по идее:)) var st1,st1_orig:string; st2,st2_orig:string; ...

Создал скрипт, который ищет слова в начале строки - Python
но хочу подключить БД, написал код, а он не выводит результат: import os import fnmatch path = input('Директория: ') mask...

Составное регулярное выражение, которое ищет слова длиной от 4 до 70 символов - C#
Всем привет. Вобщем такая проблема: нужно написать регулярное выражение, которое ищет слова длиной от 4 до 70 символов и в которых есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.01.2017, 13:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru