Dwa comboboxy - System.InvalidCastException

0

Hej,
W DGV mam dwa ComboBoxy, do których są pobierane dane z dwóch różnych tabel.
Podczas próby wprowadzania danych w nowym wersie po wyborze w jednym z comboboxow itemu wyrzuca mi błąd: System.InvalidCastException: "Nie można rzutować z elementu DBNull na inne typy"
Comboboxy wypełniam tak:

using (SqlConnection con = new SqlConnection(connectionString))
             {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblProdukty", con);
                DataTable dtbl = new DataTable();
                da.Fill(dtbl);
                cbxID_Produktu.ValueMember = "ID_Produktu";
                cbxID_Produktu.DisplayMember = "PN_Wewnetrzny_Produktu";
                DataRow topItem = dtbl.NewRow();
                topItem[0] = 0;
                topItem[1] = "-Wybierz-";
                dtbl.Rows.InsertAt(topItem, 0);
                cbxID_Produktu.DataSource = dtbl;
            }```

Natomiast wprowadzanie danych mam tutaj:

if (dgvBOM.CurrentRow != null)
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    sqlCon.Open();
                    DataGridViewRow dgvRow = dgvBOM.CurrentRow;
                    SqlCommand sqlCmd = new SqlCommand("BOMDodEdyt", sqlCon);
                    sqlCmd.CommandType = CommandType.StoredProcedure;
                    if (dgvRow.Cells["txtID_BOM"].Value == DBNull.Value)//Insert
                        sqlCmd.Parameters.AddWithValue("@ID_BOM", 0);
                    else//update
                    sqlCmd.Parameters.AddWithValue("@ID_BOM", Convert.ToInt32(dgvRow.Cells["txtID_BOM"].Value));
                    sqlCmd.Parameters.AddWithValue("@ID_Produktu", Convert.ToInt32(dgvRow.Cells["cbxID_Produktu"].Value));
                    sqlCmd.Parameters.AddWithValue("@ID_Komponentu", Convert.ToInt32(dgvRow.Cells["cbxID_Komponentu"].Value));
                    sqlCmd.Parameters.AddWithValue("@Ilość", Convert.ToDecimal(dgvRow.Cells["txtIlość"].Value));
                    sqlCmd.ExecuteNonQuery();
                    PopulateDataGridView();
                }
            }```

Zapewne muszę dodać jakieś wyjątek lub zmienić wartość przyjmowaną przez combobox na początku. Za groma nie wiem jak to ugryźć. Obie kolumny są PK w tabelach macierzystych, więc nie 0 są niedozwolone.
Za pomoc stawiam piwo :)

0

Czytaj ze zrozumieniem, dla jednego z tych combo zapytanie zwraca nulla

0
_13th_Dragon napisał(a):

Czytaj ze zrozumieniem, dla jednego z tych combo zapytanie zwraca nulla

Problem w tym, że wyrzuca mi ten błąd po uzupełnieniu pierwszego ComboBox'a... ;/

0

Problem w tym, że wyrzuca mi ten błąd po uzupełnieniu pierwszego ComboBox'a... ;/
Czyli ten drugi wciąż jeszcze ma wartość null

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