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

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

Войти
Регистрация
Восстановить пароль
 
 
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 795
#1

Фильтр информации в DataTable - C#

06.04.2015, 16:09. Просмотров 2515. Ответов 22
Метки нет (Все метки)

Добрый вечер!

Нужно сделать фильтрацию строк в DataTable, некое подобие поиска сделать.

Вот так получаю и храню данные из БД:
C#
1
2
3
4
5
6
7
8
9
10
11
12
MySqlConnection connection = new MySqlConnection("строка подключения к БД");
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT users.surname, users.name, users.midname FROM users;", connection);
DataTable table = new DataTable();
DataGridView dataGrid = new DataGridView();
adapter.Fill(table);
dataGrid.DataSource = table;
 
TextBox surname = new TextBox();
TextBox name = new TextBox();
TextBox midname = new TextBox();
 
Button find = new Button();
table хранит данные из БД (фамилия, имя, отчество)

Теперь нужно, что бы программа убрала все лишнее и показала записи содержащие фамилию, имя или отчество из TextBox.ов по нажатию кнопки find.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2015, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фильтр информации в DataTable (C#):

.NET 4.x Вывод информации в GridControl из DataTable (DevExpress) - C#
Добрый день. Есть gridcontrol и 3 вида datatable, каждая из которых в отдельности корректно выводится в gridcontrol. Но если попытаться...

Фильтр для вывода информации из БД - C#
Всем добрый день. Суть вопроса: Есть Windows форма на скриншоте. По заданию, пользователь выставляет параметры фильтра отображения...

Как из одного datatable перенести столбец в другой datatable? - C#
Здравствуйте! Кто может подсказать: как из одного datatable перенести столбец в другой datatable?

Datatable в бд - C#
Форумчане хэээлп! Выгружаю я данные в datatable вывожу их в datagridview,подскажите пожалуйста как мне иудалять и обновлять данные? ...

datatable - C#
можно ли заполнить один столбец datatable из разных столбцов разных таблиц (тип данных одинаковый)? Если да то как?

DataTable -> Mssql - C#
Здравствуйте господа ! Проблема с которой сталкнулся может показаться странной но тем не менее она реальна. А именно: Как наиболее...

22
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 795
07.04.2015, 16:07  [ТС] #16
insite2012, то есть, создать одну таблицу с данными из БД и вторую для фильтра, грузить данные и менять у DataGrid его DataCource а когда понадобится искать новые строки очищать таблицу?
0
insite2012
Модератор
Эксперт .NET
4503 / 3457 / 834
Регистрация: 12.10.2013
Сообщений: 10,137
Записей в блоге: 2
07.04.2015, 16:11 #17
SuLLeN, да, можно и так. Одна полная таблица, с данными из БД. И потом динамически что нужно в ней ищете и выводите в грид.
1
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 795
08.04.2015, 13:12  [ТС] #18
А как избавиться от регистра при фильтрации? Допустим в базе у меня "Светлана Петровна" а я введу "светлана петровна"?
0
insite2012
Модератор
Эксперт .NET
4503 / 3457 / 834
Регистрация: 12.10.2013
Сообщений: 10,137
Записей в блоге: 2
08.04.2015, 14:04 #19
Цитата Сообщение от SuLLeN Посмотреть сообщение
как избавиться от регистра при фильтрации?
Приведите все к одному регистру.
0
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 795
08.04.2015, 15:57  [ТС] #20
Я заметил, что вариант с RowFilter больше подходит в моей ситуации.
1) Меньше кода
2) Не приходится использовать еще 1 таблицу
3) не зависимо от регистра ищется хорошо

Всем большое спасибо за помощь!!!
0
sorockinalex
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 26
10.01.2017, 22:23 #21
Ребята, мозоли уже на пальцах. Никак не пойму почему не работает такая фильтрация, когда нужно использовать символ % в середине строки. Т.е. шаблон должен быть таким: %шар%1%" и он найдёт "Кран шаровый с гайкой 1 дюйм"
Но у меня данный запрос в Datatable.rowfilter не выполняется - вылетает ошибка: Ошибка в операторе Like: шаблон строки является недопустимым

Помню давно писал программу на делфи, подключался к firebird, там такие запросы срабатывали, а тут прям обидно даже... работают только скудные запросы, типа замены начала и конца...

Возможно заставить работать фильтрацию как я хочу, или нет???
0
NewOrdered
190 / 162 / 41
Регистрация: 25.05.2012
Сообщений: 720
Записей в блоге: 1
10.01.2017, 22:58 #22
sorockinalex,
http://www.csharp-examples.net/dataview-rowfilter/
1
sorockinalex
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 26
11.01.2017, 21:44 #23
Цитата Сообщение от NewOrdered Посмотреть сообщение
Wildcard in the middle of a patern 'va*lue' is not allowed.
ПОЧЕМУ???
Как заставить работать спецсимвол так, как он работает в Firebird SQL запросах???
На базу данных всё переводить?

Добавлено через 48 минут
Попал на темку
Заинтересовало:
I believe you could use SqlFunctions.PatIndex:

dt.Table.Where(p => SqlFunctions.PatIndex(term, p.fieldname) > 0);


Далее что-то искал, набрёл [URL="http://www.codecompiled.com/query-datatable-using-linq-in-c/"]

Решил попробовать вместо
C#
1
dt.DefaultView.RowFilter = rowfilter;
таким образом:
C#
1
dt.Select(rowfilter)
Только как присвоить?
C#
1
dt.DefaultView = dt.Select(rowfilter)
0
11.01.2017, 21:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2017, 21:44
Привет! Вот еще темы с ответами:

datatable to excel - C#
у меня в БД SQL таблица с 5-ю столбцами.Нужно экспортировать в excel второй и третий столбец.Как это можно сделать.Здесь примерный код но...

DataTable из DataSet (по C#) - C#
Как получить переменную DataTable из DataSet (по C#)? (для использования DataView)

DataTable и TataGridView - C#
Здравствуйте.Проблема вот в чем у меня есть DataTable и TataGridView я отображаю DataTable в TataGridView следующим образом: DataTable...

Позиция в DataTable - C#
допустим в datatable есть строка с данными "56425".Можно ли осуществить выборку в строке DataTable,то есть могу ли я выбрать допустим цифру...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

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