Поиск в DataGridView

#c# #winforms #search #datagridview

#c# #winforms #Поиск #datagridview

Вопрос:

У меня есть база данных (DB) с таблицей «Продукты» в ней. Пользователь может хранить в нем в. Предположим, что разные пользователи хранят данные как «DELL», «Dell», «D-E-L-L», «D-E-L-L» и похожи на него во многих отношениях. У меня есть все эти данные в Datagridview. Теперь я хочу сделать аналогичный поиск в Datagridview. Как этого добиться, отображая все записи «Dell». Любая помощь будет высоко оценена. Спасибо. Я использую Winforms, C # 4.0.

Комментарии:

1. Что это за приложение? Это может повлиять на подход, который вы должны использовать.

2. winforms (посмотрел бы на теги)

3. Я имел в виду, для чего он используется. Это приложение для ввода данных? Транзакционное приложение? Специальный инструмент запроса? и т.д….

4. Что это за тип базы данных?

Ответ №1:

Если это приложение, предназначенное для отслеживания продуктов, и у вас есть контроль над ним, тогда вы можете начать нормализовать свой список компаний-производителей (вы упомянули, что данные были «Dell», поэтому я предполагаю, что вы не ссылаетесь на столбец для названия продукта). Создайте таблицу ‘Company’ и замените столбец manufacturer (если он так называется) на CompanyID, который ссылается на таблицу Company. Таким образом, вы можете создать поиск на основе выпадающего списка, в котором отображаются названия всех компаний (или где они могут ввести АНАЛОГИЧНЫЙ поиск по названию, но, по крайней мере, результаты будут основаны на нормализованном списке).

В качестве альтернативы вам нужно будет управлять своими данными, и вам понадобится кто-то, ответственный за сортировку данных в элементе управления редактированием, чтобы заменить все «DELL», «D-E-L-L» и «De ll» на «Dell».

Вы можете использовать поиск в soundex, чтобы получить несколько похожие результаты, если ваши имена все еще близки (но недостаточно близки, чтобы использовать АНАЛОГИЧНЫЙ поиск).

Причина, по которой поиск в Google работает с использованием запросов в стиле LIKE, заключается в том, что они используют эвристику и алгоритмы для анализа взаимосвязей и прогнозирования того, что вы хотите. Простой запрос LIKE не будет анализировать шаблоны сходства. Поиск в Soundex близок, но, вероятно, все еще не то, что вы хотите.

Комментарии:

1. Я бы также предложил обрезать значения столбцов, прежде чем сравнивать их с оператором LIKE, и удалять / игнорировать не буквенно-цифровые символы (если они не имеют значения для этого поля данных).

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

3. Временные базы данных не имеют ничего общего с тем, что я упомянул.

4. не с тем, что вы упомянули, я вообще задавал свой вопрос. Извините за мой запутанный комментарий

5. Возможно, существует подход к решению этой проблемы, который использует временные базы данных или временные таблицы, но я не могу придумать ничего, что я бы предложил. Возможно, с использованием простой библиотеки текстовой поисковой системы, которая требует предварительной загрузки временной базы данных…