powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Фильтрация данных в DataGridView
37 сообщений из 37, показаны все 2 страниц
Фильтрация данных в DataGridView
    #40009673
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица DataGridView, в ней есть столбец column1 (Deign парамметр Name) в этой столбец попадают данные из таблицы SQL Server
по такой логике программа соединяется с базой через select вытягивает данные этими данными заполняет datagridview
и отключается от базы.

Далее пытаюсь выполнять фильтрацию данных определенного столбца в виде кода:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void FilterDataView()
        {
            DataTable dt = new DataTable();
            DataView view = new DataView();

                view = dt.DefaultView;
                string b =  string.Format("'{0}' LIKE '%{1}%'", "Column1", t_number_za9v.Text);

                view.RowFilter = b;
                dg_users.DataSource = view;
           
        }

 private void b_start_searsh_Click(object sender, EventArgs e)
        {
          
            FilterDataView();

        }



Ввожу данные в
Код: c#
1.
t_number_za9v.Text

(по маске %{1}%) фильтр должен был найти все записи содержащие введенные символы
но результата нет. Вопрос почему? Заранее спасибо ...
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40009694
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чес говоря давно не в теме, но сразу кажется странным:

Зачем присваивать vew = new View() и тут же присваивать ему другое значение. Но это не важно. Что самое подозрительное это то что в строке фильтра у тебя написано '{0}' т.е. в ркзультате там будет не просто Column1 а 'Column1' (т.е. в кавычках) - скорее всего дело именно в этом.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40009785
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
"'{0}' LIKE '%{1}%'"


У вас получается в выражении использует не имя колонки
Column1 Like '%value%',
а выражение в котором используется 2 литерала
'Column1' like '%value%'

то, есть нужно удалить символы ' в названии колонки
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40009836
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes

У вас получается в выражении использует не имя колонки

Я о том же, хотя сам я в формсах давно уже полный баран.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40010036
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
Код: sql
1.
"'{0}' LIKE '%{1}%'"


У вас получается в выражении использует не имя колонки
Column1 Like '%value%',
а выражение в котором используется 2 литерала
'Column1' like '%value%'

то, есть нужно удалить символы ' в названии колонки


удалял результат не изменился
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40010308
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014,

Код: c#
1.
DataTable dt = new DataTable();



этой строчкой ты создаёшь новую пустую таблицу без данных
и хочешь там что-то фильтровать?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40010744
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да я уже понял что дело в пустой таблице
и решение думаю циклом пробегать по датагриде и строки закидывать в DataTable dt?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011641
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У грида есть источник данных, для которого он отображает данные: DataGridView.DataSource .
Разберитесь, что у вас там в качестве него используется и попробуйте отфильтровать.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011642
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014
и решение думаю циклом пробегать по датагриде и строки закидывать в DataTable dt?

Фильтровать-то что хотите? Данные в гриде, или нужна их отфильтрованная копия?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011729
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 09:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220286][22220286]
>Фильтровать-то что хотите?...
<
Может быть имеет смысл конвертировать таблицу в список?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011733
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне сейчас припоминается, что это делалось все немного не так.

Что, если вот так попробовать:

Код: c#
1.
2.
3.
4.
5.
var dataTable = new DataTable();
// тут накидать в dataTable столбцы и данные
var dataView = new DataView(dataTable);
dataGrid.DataSource = dataView;
dataView.RowFilter = "bla-bla-bla";
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011778
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>skyANA, сегодня, 09:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220286][22220286]
>Фильтровать-то что хотите?...
<
Может быть имеет смысл конвертировать таблицу в список?

В список чего?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011801
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 09:33 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220554][22220554]
>В список чего?
<
Список строк таблицы.
Не использую тип DataTable, привязываю DataGrid непосредственно к списку, а посему не совсем понимаю проблемы автора. У списков есть не плохие методы и сортировки и фильтрации.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011814
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>skyANA, сегодня, 09:33 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220554][22220554]
>В список чего?
<
Список строк таблицы.
Не использую тип DataTable, привязываю DataGrid непосредственно к списку, а посему не совсем понимаю проблемы автора. У списков есть не плохие методы и сортировки и фильтрации.

Для DataView также есть методы и сортировки и фильтрации.

На данный момент не понятно, что у автора выступает источником данных для грида: DataGridView.DataSource.
И чего же он хочет: отфильтровать исходные данные, или получить по ним некий срез.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011843
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Не использую тип DataTable, привязываю DataGrid непосредственно к списку, а посему не совсем понимаю проблемы автора. У списков есть не плохие методы и сортировки и фильтрации.

Какая еще такая фильтрация у списка? И как там у тебя с databinding?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011891
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
ВМоисеев
Не использую тип DataTable, привязываю DataGrid непосредственно к списку, а посему не совсем понимаю проблемы автора. У списков есть не плохие методы и сортировки и фильтрации.

Какая еще такая фильтрация у списка? И как там у тебя с databinding?

Ты зачем этот вопрос задал? Сейчас как запостит портяну г...кода.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011906
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Ты зачем этот вопрос задал? Сейчас как запостит портяну г...кода.

авторНе буди лихо, пока оно тихо.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011937
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fkthat, сегодня, 12:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220699][22220699]
>Какая еще такая фильтрация у списка? И как там у тебя с databinding?
<
Как здесь .
. . .
lcv_Приложения = new ListCollectionView(lst_Приложения);
lcv_Приложения.Filter = pdt_Приложения; //-- Predicate<object> pdt_Приложения=...
dg_Приложения.ItemsSource = lcv_Приложения;
. . .
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011956
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>fkthat, сегодня, 12:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220699][22220699]
>Какая еще такая фильтрация у списка? И как там у тебя с databinding?
<
Как здесь .
. . .
lcv_Приложения = new ListCollectionView(lst_Приложения);
lcv_Приложения.Filter = pdt_Приложения; //-- Predicate<object> pdt_Приложения=...
dg_Приложения.ItemsSource = lcv_Приложения;
. . .

Если у ТС в качестве DataSource используется DataTable, то у него уже есть DefaultView, которому можно указать Filter.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011958
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
skyANA
ВМоисеев
>fkthat, сегодня, 12:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220699][22220699]
>Какая еще такая фильтрация у списка? И как там у тебя с databinding?
<
Как здесь .
. . .
lcv_Приложения = new ListCollectionView(lst_Приложения);
lcv_Приложения.Filter = pdt_Приложения; //-- Predicate<object> pdt_Приложения=...
dg_Приложения.ItemsSource = lcv_Приложения;
. . .

Если у ТС в качестве DataSource используется DataTable, то у него уже есть DefaultView, которому можно указать Filter.

Фильтр можно указать и для DataTable
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011960
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вообще-то по нормальному DataGridView должен быть связан с источником через bindingsource.
У кого не связано - тот сам себе злобный Буратино.
Фильтрация делается через

https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.bindingsource.filter?view=netframework-4.8#System_Windows_Forms_BindingSource_Filter
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011966
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
Вообще-то по нормальному DataGridView должен быть связан с источником через bindingsource.
У кого не связано - тот сам себе злобный Буратино.
Фильтрация делается через

https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.bindingsource.filter?view=netframework-4.8#System_Windows_Forms_BindingSource_Filter

Дык BindingSource прописывается как DataGridView.DataSource.

Я уже писал:
skyANA
У грида есть источник данных, для которого он отображает данные: DataGridView.DataSource .
Разберитесь, что у вас там в качестве него используется и попробуйте отфильтровать.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011975
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 17:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220949][22220949]
>Если у ТС в качестве DataSource используется DataTable...
<
сортировка возможна? (а-ля list.sort())
или а-ля такое
List<T> listT1 = listT0.Where(...).ToList<T>();
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40011984
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>skyANA, сегодня, 17:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22220949][22220949]
>Если у ТС в качестве DataSource используется DataTable...
<
сортировка возможна? (а-ля list.sort())
или а-ля такое
List<T> listT1 = listT0.Where(...).ToList<T>();

Возможна. В документации по классам и интерфейсам, что они реализуют, всё есть.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012018
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
skyANA
Cat2
Вообще-то по нормальному DataGridView должен быть связан с источником через bindingsource.
У кого не связано - тот сам себе злобный Буратино.
Фильтрация делается через

https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.bindingsource.filter?view=netframework-4.8#System_Windows_Forms_BindingSource_Filter

Дык BindingSource прописывается как DataGridView.DataSource.

Я уже писал:
skyANA
У грида есть источник данных, для которого он отображает данные: DataGridView.DataSource .
Разберитесь, что у вас там в качестве него используется и попробуйте отфильтровать.



Не все написанное обязательно полезно
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012028
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
skyANA
пропущено...

Дык BindingSource прописывается как DataGridView.DataSource.

Я уже писал:пропущено...



Не все написанное обязательно полезно

Предлагать ТСу провести всестороннее ревью его кода и переписать его "по нормальному" я не буду.
Моё мнение - пусть разбурётся с тем, что есть
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012034
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
skyANA
Моё мнение - пусть разбурётся с тем, что есть


Надеюсь, что разберется. А то , не дай Бог, напишет что-то для ПФР
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012035
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SAS2014,

Послушайте уже старого зубра.
Фильтрацию на клиенте не надо делать НИКОГДА.
Фильтрацию надо делать в запросе к базе
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012037
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Пользователю НИКОГДА не нужны все данные по всем возможным параметрам.
У пользователя в мозгах ВСЕГДА есть параметры , по которым он хочет сделать запрос.

Искусство программирования пользовательских приложений в том, что бы понять, что нужно пользователю и реализовать это наиболее эффективным способом
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012040
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 22:03 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22221099][22221099]
>...Моё мнение - пусть разбурётся с тем, что есть...
<
Так у ТС есть что нужно.
Фразу:
Есть таблица DataGridView, в ней есть столбец column1 (Deign парамметр Name) в этой столбец попадают данные из таблицы SQL Server
по такой логике программа соединяется с базой через select вытягивает данные этими данными заполняет datagridview
и отключается от базы.
корректируем:
Есть таблица dt, в ней есть столбец column1 (Deign парамметр Name) в этой столбец попадают данные из таблицы SQL Server
по такой логике программа соединяется с базой через select вытягивает данные этими данными заполняет dt
и отключается от базы.
а:
private void FilterDataView()
{
DataTable dt = new DataTable();
DataView view = new DataView();

view = dt.DefaultView;
string b = string.Format("'{0}' LIKE '%{1}%'", "Column1", t_number_za9v.Text);

view.RowFilter = b;
dg_users.DataSource = view;

}
заменяем на:
private void FilterDataView() {
string b = string.Format("'{0}' LIKE '%{1}%'", "Column1", t_number_za9v.Text);
view = dt.DefaultView; view.RowFilter = b; dg_users.DataSource = view;
}
переменные dt, view, dg_users уровня класса
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012049
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>skyANA, сегодня, 22:03 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22221099][22221099]
>...Моё мнение - пусть разбурётся с тем, что есть...
<
Так у ТС есть что нужно.

Не сомневаюсь :) Осталось с этим только разобраться и использовать.

Объекта dt у него нет, у него есть только dg_users, а у того есть DataSource.
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012052
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
Послушайте уже старого зубра.
Фильтрацию на клиенте не надо делать НИКОГДА.

Старый зубр походу принял на грудь в понедельник.

Никогда не говори "никогда"
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012252
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<Cat2, вчера, 22:24 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22221113][22221113]
<...Фильтрацию на клиенте не надо делать НИКОГДА...
>
Не согласен. Пример:
1. Есть некая информационная система
2. Её функционал реализован в виде множества прикладных приложений
3. Множество прикладных приложений разбито на группы
4. Каждый пользователь имеет доступ к своему подмножеству приложений.
5. В результате процедуры аутентификации пользователь получает на локальный комп два списка:
а) список групп
б) список приложений
которые отражаются в двух DataGrid (см. рис)
Пользователю иногда удобнее осуществлять выбор приложения для работы из списка доступной группы
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012304
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Не согласен. Пример:


На вашем "примере" десяток приложений в списке.
Речь идёт о больших объёмах, от тысячи до сотен миллионов записей.

С чем вы там "не согласны", не понимаю?
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40012357
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 17:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22221597][22221597]
>С чем вы там "не согласны", не понимаю?
<
TC :Фильтрацию на клиенте не надо делать НИКОГДА.
Я : Не согласен. Пример
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40014084
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
SAS2014,

Послушайте уже старого зубра.
Фильтрацию на клиенте не надо делать НИКОГДА.
Фильтрацию надо делать в запросе к базе


я уже такое решение почти завершил так как еще раз подумал .. какого на клиенте делать фильтр ... и уже запросом в саму базу
плюсь этого решение это актуальность и удобность
...
Рейтинг: 0 / 0
Фильтрация данных в DataGridView
    #40014085
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
<Cat2, вчера, 22:24 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330059&msg=22221113][22221113]
<...Фильтрацию на клиенте не надо делать НИКОГДА...
>
Не согласен. Пример:
1. Есть некая информационная система
2. Её функционал реализован в виде множества прикладных приложений
3. Множество прикладных приложений разбито на группы
4. Каждый пользователь имеет доступ к своему подмножеству приложений.
5. В результате процедуры аутентификации пользователь получает на локальный комп два списка:
а) список групп
б) список приложений
которые отражаются в двух DataGrid (см. рис)
Пользователю иногда удобнее осуществлять выбор приложения для работы из списка доступной группы


а как актуализируются данные?
ведь это большой вопрос если речь идет о данных которые хранятся в базах данных
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Фильтрация данных в DataGridView
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]