C# 如何使用ComboBox筛选DataGridView

C# 如何使用ComboBox筛选DataGridView,c#,sql-server,winforms,filter,combobox,C#,Sql Server,Winforms,Filter,Combobox,我需要有关使用组合框筛选我的DataGridView的帮助 这是我的显示代码 cm = new SqlCommand(); cn = new SqlConnection(lgn.connections); cn.Open(); cm.Connection = cn; query = "Select * from Trails"; cm.CommandText = query; SqlDataAdapter dar = new SqlDataAdapter(cm); DataTable dt =

我需要有关使用组合框筛选我的
DataGridView
的帮助

这是我的显示代码

cm = new SqlCommand();
cn = new SqlConnection(lgn.connections);
cn.Open();
cm.Connection = cn;
query = "Select * from Trails";
cm.CommandText = query;
SqlDataAdapter dar = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
dar.Fill(dt);
dataGridView1.DataSource = dt;

dataGridView1.Columns[0].Width = 0;
dataGridView1.Columns[1].Width = 130;
dataGridView1.Columns[2].Width = 100;
dataGridView1.Columns[3].Width = 360;
dataGridView1.Columns[4].Width = 130;
this.dataGridView1.Columns[0].Visible = false;
原始数据:

ID  | TRANSACTYPE | DESCRIPTION | AUTHORIZED BY
-----------------------------------------------
1   | LOGIN       | blah blah   | BOB
2   | LOGOUT      | blah blah   | BOB
3   | LOGIN       | blah blah   | TIM
4   | LOGOUT      | blah blah   | KURT
我有名为
cboFilter
ComboBox
,如果我将索引更改为
LOGIN
,则
dataGridView1
上显示的数据仅为登录。

尝试以下操作:

DataTable dt = new DataTable();

private void cboFilter_SelectedIndexChanged(object sender, EventArgs e)
{
    DataView dv = dt.DefaultView;
    dv.RowFilter = string.Format("TRANSACTYPE  LIKE '%{0}%'", cboFilter.SelectedItem.ToString());
    dataGridView1.DataSource = dv;
}
试试这个:

DataTable dt = new DataTable();

private void cboFilter_SelectedIndexChanged(object sender, EventArgs e)
{
    DataView dv = dt.DefaultView;
    dv.RowFilter = string.Format("TRANSACTYPE  LIKE '%{0}%'", cboFilter.SelectedItem.ToString());
    dataGridView1.DataSource = dv;
}
试试这个:

DataTable dt = new DataTable();

private void cboFilter_SelectedIndexChanged(object sender, EventArgs e)
{
    DataView dv = dt.DefaultView;
    dv.RowFilter = string.Format("TRANSACTYPE  LIKE '%{0}%'", cboFilter.SelectedItem.ToString());
    dataGridView1.DataSource = dv;
}
试试这个:

DataTable dt = new DataTable();

private void cboFilter_SelectedIndexChanged(object sender, EventArgs e)
{
    DataView dv = dt.DefaultView;
    dv.RowFilter = string.Format("TRANSACTYPE  LIKE '%{0}%'", cboFilter.SelectedItem.ToString());
    dataGridView1.DataSource = dv;
}

如果您需要
DataGridView
数据源始终是
DataTable
,就像我的例子一样

DataTable dt = (DataTable)dgv.DataSource;
dgv.DataSource = dt.Select("IsActive = 1").CopyToDataTable();

如果您需要
DataGridView
数据源始终是
DataTable
,就像我的例子一样

DataTable dt = (DataTable)dgv.DataSource;
dgv.DataSource = dt.Select("IsActive = 1").CopyToDataTable();

如果您需要
DataGridView
数据源始终是
DataTable
,就像我的例子一样

DataTable dt = (DataTable)dgv.DataSource;
dgv.DataSource = dt.Select("IsActive = 1").CopyToDataTable();

如果您需要
DataGridView
数据源始终是
DataTable
,就像我的例子一样

DataTable dt = (DataTable)dgv.DataSource;
dgv.DataSource = dt.Select("IsActive = 1").CopyToDataTable();