Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
MS SQL

Нечеткий поиск в базе данных

05.11.2019, 18:42. Показов 7714. Ответов 14

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Помогите создать нечеткий (по буквам) поиск данных, которые выведены в datagridview. Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2019, 18:42
Ответы с готовыми решениями:

Нечеткий поиск по столбцу
Добрый день. Есть столбец в DataTable с адресами типа ("Ростовская область, г. Ростов-на-Дону, ул. Красноармейская, д 93/4"). ...

Нечеткий поиск в базе данных
Добрый день, проблема состоит в следующем: нужно написать "нечеткий поиск" для базы данных SQL. Поиск осуществляется по различным типам...

Нечеткий поиск в базах персональных данных
Не могу разобраться. Как организуется нечеткий поиск в базах данных? когда предполагаем, что возможно компонент ФИО записан не в том...

14
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 06:33
tastemyforce, понятие "нечёткий" в СУБД нет. Есть поиск по подстроке (LIKE '%подстрока%') или Full-Text Search, который может (для некоторых СУБД из тех в которых он вообще есть) искать варианты слов.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 08:26  [ТС]
Usaga, спасибо, но у меня есть конкретное задание, где прописан этот пункт, значит можно как-то сделать. Есть 3 столбца: "Фамилия", "Имя", "Отчество" и нужно реализовать в них поиск по букве. То-есть есть после ввода буквы в textbox, отображается нужное слово, что есть в бд.

Выдает ошибку: Не удалось привести тип объекта "System.Windows.Forms.BindingSource" к типу "System.Data.DataTable

C#
1
2
3
4
5
string selectString = "фамилия = " + "'"+ textBox1.Text.Trim() + "'";
             DataRowCollection allRows = ((DataTable)dataGridView1.DataSource).Rows ;
             DataRow[] searchedRows = ((DataTable)dataGridView1.DataSource).Select(selectString);
             int rowIndex = allRows.IndexOf(searchedRows[0]);
             dataGridView1.CurrentCell = dataGridView1[0, rowIndex];
Миниатюры
Нечеткий поиск в базе данных  
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 08:35
Цитата Сообщение от tastemyforce Посмотреть сообщение
Есть 3 столбца: "Фамилия", "Имя", "Отчество" и нужно реализовать в них поиск по букве. То-есть есть после ввода буквы в textbox, отображается нужное слово, что есть в бд.
Это поиск по подстроке, а не нечёткий поиск. Как именно искать вам написали во втором предложении на скриншоте.

Добавлено через 51 секунду
Цитата Сообщение от tastemyforce Посмотреть сообщение
Выдает ошибку: Не удалось привести тип объекта "System.Windows.Forms.BindingSource" к типу "System.Data.DataTable
В коде какая-то ахинея. Искать надо в базе \ источнике данных, а не в содержимом грида.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 08:45  [ТС]
Реализуйте нечёткий поиск клиентов/риэлторов по ФИО. Считайте, что данный клиент/агент соответствует критерию поиска если расстояние Левенштейна между соответствующими полями ФИО не превышает 3. Тогда вот, поможешь объяснить, пожалуйста
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 08:53
tastemyforce, если Левенштейн, то это - весьма нечёткий поиск, да. Это значит, что нужно будет сидеть и перебирать ВСЕ строки в исходном хранилище и считать это расстояние между искомой и строкой в хранилище.

Тут СУБД вам ничем не сможет помочь, кроме разве, что того, что данные не в ОЗУ будут целиком лежать. Если данных умеренно много, то лучше будет выгрести в оперативку весь список и уже в ОЗУ это расстояние считать. 100500 запросов к базе сильно ударят по производительности.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 09:01  [ТС]
Спасибо, я понял что это, но с кодом будут проблемы, может ты знаешь основную часть? Очень выручишь
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 09:08
tastemyforce, какую часть? Вы умеете считать расстояние Левенштейна для двух строк? Вы умеете пройтись в цикле по коллекции строк и для каждой посчитать это расстояние от искомой строки? Вы умеете достать из базы эту коллекцию? Вы умеете на основе поиска составить новую коллекцию строк и затолкать в DataGridView как вы сделали с изначальной коллекцией?

Добавлено через 47 секунд
Каждый отдельно взятый вопрос не видится сложным.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 09:12  [ТС]
Я новичок, ничего не смогу. Но научиться то надо как-то
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 09:14
tastemyforce, я вам озвучил ряд вопросов представляющих из себя шаги, которые нужно выполнить для решения вашей задачи. Делать ваше задание за вас я не собираюсь.

Вы можете:
а) Сидеть и ждать у моря погоды
б) По порядку прорабатывать озвученные выше вопросы, начиная с того, как посчитать расстояние Левенштейна
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 09:27  [ТС]
Да смысл то я понял, но как я код узнаю, может ссылку кинешь на ресурс, а так спасибо большое
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 09:32
Цитата Сообщение от tastemyforce Посмотреть сообщение
но как я код узнаю
Поищещ в гугле. На моём самом первом рабочем месте, вторым или третьим заданием было проверка качества распознавания текста как раз с использованием расчёта расстояния Левенштейна. И знаете что? По фразе "C# расстояние Левенштейна" я нашёл готовый алгоритм (не описание, именно код) МГНОВЕННО.

Вы, как новичок, не собираетесь даже и пальцем пошевелить? Ну, тогда успехов вам в решение вашей задачи.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 09:34  [ТС]
Я надеялся на Ваше объективное мнение и выделение более конструктивной и полезной информации. Закрыли тему, спасибо
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,932
06.11.2019, 09:43
Лучший ответ Сообщение было отмечено tastemyforce как решение

Решение

tastemyforce, я и так был объективен. И даже выделил из вашего задания изолированные от остальных частей вопросы.

Каждый вопрос решайте отдельно от других и постепенно вы придёте к решению всей задачи. Ответ на каждый вопрос ищется на ура. За вас их искать и ссылками выкладывать смысла не имеет.

Как рассчитать расстояние вы найдёте в гугле (лично проверял, что код там есть и не скрыт где-то в кушарах на девяностой странице). Как работать с СУБД из C# вы найдёте как в FAQ на этом форуме, так и в тысячах статей по всея интернета. Это тоже не rocket sciense. Как коллекцию запихнуть в DataGridView... ну вы поняли?

Ваша задача состоит из гранулированных, легко искомых вопросов. Помочь ещё больше, чем выделить эти вопросы - это вообще сделать за вас. На фиг это кому нужно?
1
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 14
06.11.2019, 10:09  [ТС]
Usaga, хорошо, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.11.2019, 10:09
Помогаю со студенческими работами здесь

Нечеткий поиск персональных данных в информационных системах
Нужно найти современные алгоритмы нечеткого поиска ПО ТЕМЕ: нечеткий поиск персональных данных в информационных системах. в...

Нечеткий поиск
Всем доброго времени суток! Ребят подскажите,пожалуйста, суть.Нужно организовать нечеткий поиск в БД.Какой нечеткий поиск реализовать...

Нечеткий поиск
Добрый день! Возможно ли в принципе полностью автоматически со 100% точностью "распознать" адреса? Есть КЛАДР, содержащий...

Нечеткий поиск
НУЖНА ПОМОЩЬ. РАЗРАБОТАН АЛГОРИТМ СРАВНЕНИЯ СТРОК, ОПРЕДЕЛЯЕТ ДО ДВУХ ОШИБОК, ГДЕ ОН МОЖЕТ БЫТЬ ПРИМЕНЕН КРОМЕ ИНФОРМАЦИОННЫХ СИСТЕМ...

Нечеткий поиск
Как сделать нечеткий "правильный" поиск. Dim query As String query="Шери" db.FTSearch(query,0,FT_DATE_DES,FT_STEMS+FT_FUZZY) ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru