Problem z wypełnieniem combobox za pomocą eventu SelectedIndexChanged

0

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.

0

Wyrzuca mi błąd, że połączenie jest otwarte ze wskazaniem na linię z con.Open()

Prawdopodobnie, wcześniej w innym miejscu nie zamykasz połączenia (pomijając kilka innych błędów jakie masz w tym fragmencie kodu). Musiałbyś pokazać więcej kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1