2015-09-06 78 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; 
}