Как фильтровать datagridview при помощи нескольких combobox.

Автор:editor

Как фильтровать datagridview при помощи нескольких combobox.

Цитата: rockovo

Привет всем!

Я очень новой для программирования и я пытаюсь выучить C# через маленький проект. Я провел неделю или больше пытаюсь найти решение, но хотя есть много потоков, ни один из них не имело смысл для меня и не мог заставить его работать.
У меня есть форма с datagridview и я хочу создать еще 5 выпадающие списки для фильтрации его. Все с одного источника данных.
Скажем, если пользователь выбирает поле со списком с конкретными на «роль», он будет отображать все записи сотрудников, которые находятся в этой роли, однако, если пользователь дополнительно выбрать другой комбобокс например, на «сдвиг», он будет и дальше сузить ее до сотрудников в таком-то «роль» на что «сдвиг» и
Я до сих пор удалось получить datagridview в работе с одного комбобокса, но не знаю как добавить больше их.
Можете ли вы пожалуйста, дайте мне пример на основе моего кода, чтобы добавить больше комбобоксы?
Я был бы очень признателен вашей помощи.
Ниже приведен код:

using System;
Using sistemy.Kollektsii.Universalny;
Using sistemy.ComponentModel;
Using sistemy.Dannyh;
Using sistemy.Risunok;
sistemy.Sredstva using LINQ;
Using sistemy.Teksta;
Using sistemy.Rezbonareznoy.Zadachi;
Using sistemy.Okna.Form;
Using sistemy.Dannyh.V sqlclient;

name space TM_Hub
{
public partial class frmEmpList: Form
{
public frmEmpList ()
{
initializecomponent () method;
}

private void frmEmpList_Load (object sender, EventArgs in e)
{
eto.PopulateComboBox ();
eto.PopulateDataGridView ();
}
Private void PopulateComboBox ()
{
string query = «and select the name of the special staff and quot ;;
string = @ Release the» Data Source = desktop-Q2B3UUH \ name sqlexpress; initial catalog = c peoplemanager; Integrated Security = true » y,
using (with the SQLConnection = new con the SQLConnection (region))
{
using (the SqlDataAdapter = new regulations the SqlDataAdapter (query, con))
{
// Fill the DataTable with records from the table.
The DataTable DT = new DataTable object ();
SDA. fill (DT);

// Insert the default item for a DataTable.
Rows strokadannyh DT.Nevrov = ();
string [0] = and & quot; and quot ;;
DT.Strok.InsertAt (row 0);

// Assign DataTable as a data source.
cbLastName.Istochnik data = DT;
cbLastName.DisplayMember = the «name» — and;
cbLastName.ValueMember = the «name» — and;
}
}
}
Private void PopulateDataGridView ()
{
select empid in, firstName and lastName, role, class, department, shift from staff and quot = query string «at ;;
request + =», where the name = @ name on the «;
request + = «or isnull (@ surname») = «» — a,
line construction = @ the «data source = desktop-Q2B3UUH \ name sqlexpress; initial catalog = c peoplemanager; Integrated security = True», y;

using (sqlcommand, which CMD = new sqlcommand, which (request con)) 

UMK.Parametry.AddWithValue (to «surname & quotbyl @ ;, cbLastName.SelectedValue); 
using (SqlDataAdapter SDA = new SqlDataAdapter (CMD)) 

Object DataTable DT = new object DataTable (); 
PDD.Zapolnit (DT); 
dgEmpList.Istochnik data DT =; 



}

private void cbLastName_SelectionChangeCommitted (object sender, EventArgs in e)
{
eto.PopulateDataGridView ();
}
}
}

Заранее спасибо!

Цитата: jmcilhinney

Последний раз редактировалось rockovo; 12-09-2018 в 11:12 утра .

Цитата:

Добавить bindingsource к вашей форме, и тогда, вместо привязки объекта DataTable непосредственно на объекте datagridview, привязки объекта DataTable к bindingsource и bindingsource к сетке. Затем вы можете фильтровать данные путем установки свойства фильтра BingingSource. Вы можете написать один способ сделать это, а затем вызвать этот метод из разделе мы рассмотрим или SelectionChangeCommitted обработчик событий для каждого элемента управления ComboBox. Такой метод может выглядеть так:

var combo box = new [] {cbLastName, …]; // сюда кладите  все .. ComboBoexes.  // this line somehow «surname = ‘Petrov’ ‘и foreach ComboBox. 

Сразу отметим, что, как я указал в комментариях, что код будет положить одинарные кавычки вокруг значения в каждом конкретном случае. Если любое из этих значений не строки, то вы должны учитывать, что, т. е. не добавить одинарные кавычки для чисел и добавить ‘#’ символы и соответствующий формат даты.

Об авторе

editor administrator

})