Ich habe eine Winforms-App in C# mit mehreren comboboxes
. Diese Comboboxen zeigen Daten aus einer SQL-Datenbank an. Ich kann die Comboboxen erhalten, um die Daten in einer listview
anzuzeigen, aber was ich will, ist die Daten zu filtern. Zum Beispiel wählt der Benutzer einen Wert in Combobox1 und die Ergebnisse erscheinen, aber wenn er einen Wert in combobox
2 wählt, werden nur die entsprechenden Werte mit den Regeln von combobox1
angezeigt. es ist wie ein Filter erstellen, aber ich kann nicht herausfinden, wie ich zwischen den Comboboxen interagieren kann. Der Code, den ich habe, ist:C# Verwendung von Comboboxen zum Filtern von SQL-Daten
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);
}
Diese nur für zwei der Comboboxen ist, aber wenn ich diese eine Arbeit, den Rest bekommen einfach sein.
Vielen Dank im Voraus,
Anstatt wiederholen Sie den SelectedIndexChanged Code wollen, sollten Sie Ein Event-Handler, den Sie von jedem Combo aus aufrufen, der den Wert aller Kombos prüft und das Resultset aus diesen Daten erstellt. – stuartd