2015-09-06 80 views
0

过滤的DataGridView我需要使用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 = 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 

我已经ComboBox命名cboFilter和如果我将索引更改为LOGIN将在dataGridView1上显示的数据只是LOGINs。

回答

1

试试这个:

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; 
}