Cześć!
Mam problem z teoretycznie banalną częścią kodu.
Chcę zrobić wyszukiwarkę z DataGridView za pomocą dwóch combobox'ów.
CBX1 (pierwszy combobox) - uzupełniany jest przy ładowaniu formy, poniżej fragment kodu.
private void populate_cbx_type()
{
cbx_type.Items.Clear();
con.Open();
SqlCommand cmd = new SqlCommand("SELECT DISTINCT Type_Component FROM tblComponent", con);
cmd.ExecuteNonQuery();
DataTable dtbl = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dtbl);
cbx_type.DataSource = dtbl;
cbx_type.DisplayMember = "Type_Component";
cbx_type.ValueMember = "Type_Component";
con.Close();
}
Na tym etapie jest wszystko ok, problem się pojawia, gdy chcę obsłużyć event SelectedIndexChanged w CBX1, za którym chcę wypełnić CBX2.
Kod do obsługi eventu poniżej:
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM tblComponent WHERE Type_Component='" + cbx_type.Text (probowalem rowniez SelectedValue itp)+ "'", con);
cmd.ExecuteNonQuery();
DataTable dtbl = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dtbl);
cbx_bom_comp.DataSource = dtbl;
cbx_bom_comp.DisplayMember = "InternalPN_Component";
cbx_bom_comp.ValueMember = "ID_Component";
con.Close();
Wyrzuca mi błąd, że połączenie jest otwarte ze wskazaniem na linię z con.Open()
Szczerze powiedziawszy zgłupiałem, za każdą pomoc będę wdzięczny.