Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2021, 10:45   #1
Grek234
Новичок
Джуниор
 
Регистрация: 15.06.2021
Сообщений: 2
Сообщение Фильтрация dataGridView

Добрый день
Нужна помощь в реализация фильтра DataGridView по числам череез TextBox.
Пример:


Допустим, вот у меня в колонке -Цен- такие числа:
2345
3467
4999
6000
7908
9456

И введя в TextBox1=2000 и TextBox2=7000 , должно показать все от 2000 до 7000

У меня есть фильтрация , но это не то , что хочу реализовать.

Код:
   private void textBox1_TextChanged(object sender, EventArgs e)
        {

            (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("convert(Цена, 'System.String') Like '%{0}%' ",
                                 textBox1.Text);
     
        }


   private void textBox2_TextChanged(object sender, EventArgs e)
        {

            (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("convert(Цена, 'System.String') Like '%{0}%' ",
                                 textBox2.Text);
     
        }
Grek234 вне форума Ответить с цитированием
Старый 15.06.2021, 13:56   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Ну и используйте условия в фильтре

Код:
if (int.TryParse(textBox1.Text, out int v1) && int.TryParse(textBox2.Text, out int v2))
            {
                if (v2 > v1)
                {
                    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = "Col1 >= " + v1 + " AND Col2 <= " + v2;
                }
                else (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = "";
            }
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.06.2021, 20:17   #3
Grek234
Новичок
Джуниор
 
Регистрация: 15.06.2021
Сообщений: 2
По умолчанию

WorldMaster,
Я решил сделать через Комбо Бокс ,но беда в синтаксисе , просто не знаю как правильно будет,сколько уже искал. Ведь еще и нужно в строку перевести и как это вместе прописать.
Код:

 switch(comboBox1.SelectedIndex)
            {
                case 0:
                    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format($"convert(Цена  ,'System.String') Like Цена <= 3000");
                    break;

                case 1:
                    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format( $"convert(Цена >= 2000 AND Адрес <= 4000,'System.String') ");
                    break;



            }
        }
Grek234 вне форума Ответить с цитированием
Старый 16.06.2021, 07:50   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Grek234 Посмотреть сообщение
Ведь еще и нужно в строку перевести и как это вместе прописать
В какую строку? я же вам написал рабочий пример. Ставьте его и получите то что хотели изначально.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация в DataGridView с параметром string - C# 9398 Windows Forms 0 20.05.2017 10:36
Фильтрация в dataGridView vbn1 C# (си шарп) 0 29.05.2016 11:56
Фильтрация dataGridView Evdoz C# (си шарп) 1 28.05.2015 22:36
Фильтрация Katerina_K БД в Delphi 2 19.01.2014 10:07
Фильтрация в DataGridView DENIS_POLOTSK C# (си шарп) 1 16.06.2012 21:47