【发布时间】:2017-06-28 21:11:24
【问题描述】:
我有一个 C# 中的 winforms 应用程序,其中包含多个 comboboxes。这些组合框显示来自 SQL 数据库的数据。我可以让组合框在listview 中显示数据,但我想要的是过滤数据。
例如,用户在combobox1 中选择了一个值,结果就会出现,但是当他在combobox 2 中选择一个值时,只会显示具有combobox1 规则的对应值。
这就像创建一个过滤器,但我不知道如何在组合框之间进行交互。
我的代码是:
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);
}
这仅适用于其中两个组合框,但是当我让这个组合框工作时,剩下的就很简单了。
提前致谢,
【问题讨论】: