0
我在C#中有一個winforms應用程序,有幾個comboboxes
。這些組合框顯示來自SQL數據庫的數據。我可以讓組合框在listview
中顯示數據,但我想要的是過濾數據。 例如,用戶在combobox1中選擇一個值並顯示結果,但是當他在combobox
2中選擇一個值時,只會顯示combobox1
規則的相應值。 這就像創建一個過濾器,但我不知道如何我可以在組合框之間進行交互。 我的代碼是:c#使用組合框來過濾sql數據
private void desempenho_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter(@"select [desc],[enchimento],[compo] from vidros where desempenho = @emp", con);
sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = desempenho.Text;
DataTable DTT = new DataTable();
sda.Fill(DTT);
listView1.Items.Clear();
for (int i = 0; i < DTT.Rows.Count; i++)
{
DataRow dr = DTT.Rows[i];
ListViewItem listitem = new ListViewItem(dr["desc"].ToString());
listitem.SubItems.Add(dr["enchimento"].ToString());
listitem.SubItems.Add(dr["compo"].ToString());
listView1.Items.Add(listitem);
}
}
private void valu_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter SDA2 = new SqlDataAdapter(@"select [desc],[enchimento],[compo] from vidros where valu = @emp2", con);
SDA2.SelectCommand.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = valu.Text;
DataTable DTT2 = new DataTable();
SDA2.Fill(DTT2);
listView1.Items.Clear();
for (int i = 0; i < DTT2.Rows.Count; i++)
{
DataRow dr = DTT2.Rows[i];
ListViewItem listitem = new ListViewItem(dr["desc"].ToString());
listitem.SubItems.Add(dr["enchimento"].ToString());
listitem.SubItems.Add(dr["compo"].ToString());
listView1.Items.Add(listitem);
}
這僅僅是兩個組合框的,但是當我得到這個一個工作其餘的將是簡單的。
在此先感謝,
比而重複每個事件的SelectedIndexChanged代碼,你應該有一個事件處理程序,您從每個組合中調用,檢查所有組合值的值,並從該數據構建結果集。 – stuartd