Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
2 / 2 / 0
Регистрация: 08.11.2014
Сообщений: 47

Фильтр по столбцу DataGridView

21.07.2016, 14:46. Показов 3370. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана база данных textbox1 фильтрует по всей базе с помощью кнопки поиск
нужно сделать с textbox2 фильтр который фильтрует столбец Номер дома надо тоже чтобы через кнопку поиск
вот код
по textbox1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                dataGridView1.CurrentCell = null;
                dataGridView1.Rows[i].Visible = false;
                for (int c = 0; c < dataGridView1.Columns.Count; c++)
                    
                    {
 
                        if (dataGridView1[c, i].Value.ToString() == textBox1.Text)
                            
                        {
                            dataGridView1.Rows[i].Visible = true;
                            break;
 
                            
                        }
                    }
 
            }
                
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2016, 14:46
Ответы с готовыми решениями:

Фильтр по столбцу dataGridView
Всем привет! Есть такой код private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { ...

Фильтр по столбцу в DataGridView
Всем привет!передомной встала такая проблема Нужно выполнить фильтр по столбцам мы выбираем из combobox столбец в textbox пишем данные...

BindingSource. dataGridView. Как сделать независимый фильтр для двух dataGridView?
Из Access данные импортируются в dataGridView В качестве источника данных используется один и тот же файл Acs-dtgrDB2003.mdb Каждый...

4
77 / 77 / 42
Регистрация: 30.09.2014
Сообщений: 342
21.07.2016, 15:31
фильтрует столбец номер дома ? и что должен делать? типо тоже визибл сделать при совпадении?

Добавлено через 1 минуту
ниже if еще if пишите такойже

только вместо textbox => textbox2 , вместо 'с' номер стобла который нужен
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
21.07.2016, 18:50
Лучший ответ Сообщение было отмечено blackyear как решение

Решение

Переделанный ваш вариант
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    private void button2_Click(object sender, EventArgs e) 
        {
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                if (textBox2.Text != dataGridView1.Rows[i].Cells[3].Value.ToString()) 
                {
                    dataGridView1.Rows[i].Visible = false;
                    continue;
                }
                
                dataGridView1.CurrentCell = null;
                dataGridView1.Rows[i].Visible = false;
                for (int c = 0; c < dataGridView1.Columns.Count; c++)
                    
                    {
 
                        if (dataGridView1[c, i].Value.ToString() == textBox1.Text)
                            
                        {
                            dataGridView1.Rows[i].Visible = true;
                            break;
 
                            
                        }
                    }
 
            }
                
        }
предлагаю попробовать такой более оптимальный


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void button2_Click(object sender, EventArgs e)
        {
            bool exist; //флаг поиска
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                if (textBox2.Text != dataGridView1.Rows[i].Cells[3].Value.ToString())
                {
                    dataGridView1.Rows[i].Visible = false;
                    continue;
                }
                exist = false;
                for (int c = 0; c < dataGridView1.Columns.Count; c++)
                {
 
                    if (dataGridView1[c, i].Value.ToString() == textBox1.Text)
                    {
                        exist = true;
                        break;
                    }
                }
                if (!exist)
                {
                    dataGridView1.Rows[i].Visible = false;
                }
 
            }
            dataGridView1.CurrentCell = null;
        }
1
2 / 2 / 0
Регистрация: 08.11.2014
Сообщений: 47
22.07.2016, 07:05  [ТС]
Надо сделать так чтоб работали 2 textbox как отдельно так и совместно чтоб друг друга не перебивали
в textbox1 уже сделано было поиск по всей таблице
а нужно было реализовать в Textbox2 чтобы искал по столбцу Номер дома

p.s. Допустим мы ввели в textbox1 Дорожная
вывело все дома с улицей дорожная
а в вводя потом в textbox2 номер дома 21
должно выводить только дорожная 21
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
22.07.2016, 19:10
blackyear, такой код попробуйте

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
private void button2_Click(object sender, EventArgs e)
        {
 
            if (textBox2.Text.Trim() != String.Empty)
            {
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    if (textBox2.Text != dataGridView1.Rows[i].Cells[3].Value.ToString())
                    {
                        dataGridView1.Rows[i].Visible = false;
                    }
                }
            }
 
 
            if (textBox1.Text.Trim() != String.Empty)
            {
                bool exist;
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    if (!dataGridView1.Rows[i].Visible) 
                    {
                        continue;
                    }
 
                    exist = false;
                    for (int c = 0; c < dataGridView1.Columns.Count; c++)
                    {
 
                        if (dataGridView1[c, i].Value.ToString() == textBox1.Text)
                        {
                            exist = true;
                            break;
                        }
                    }
                    if (!exist)
                    {
                        dataGridView1.Rows[i].Visible = false;
                    }
 
                }
            }
            dataGridView1.CurrentCell = null;
        }
Насчет Trim() подумайте. Вдруг у вас там пробелы в конце строк нежданные бывают
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.07.2016, 19:10
Помогаю со студенческими работами здесь

Сортировка по столбцу в datagridview
У меня есть класс, он выводится в datagridview, мне необходимо отсортировать его по полю articles и вывести отсортированные данные снова в...

Поиск по столбцу в datagridview
Здравствуйте. В общем, есть у меня форма, где я из txt-файла вывожу инфу в datagridview. Потом я на второй форме, которую вызываю через...

Сортировка по столбцу dataGridView
Здравствуйте! Можно обратиться?! У меня сортируются данные по всем столбцам нормально. Когда, например, я захотела отсортировать по...

Поиск по столбцу dataGridView
Здравствуйте! Такой вопрос. Есть кнопка, при нажатие на него добавляется в первом столбце dataGridView сегодняшняя дата. Теперь хочу...

DataGridView. Поиск по определенному столбцу
Делаю прогу по взаимодействию с БД. Хочу сделать поиск в опредеоенном столбце (где совподает хоть 1-но слово).Но возникла проблема . Вот...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru