Я работаю над С# WinForms, где у меня есть несколько флажков, текст которых добавляется в datagridview (dgData) при нажатии кнопки. Вот его код.
private void btnAdd_Click(object sender, EventArgs e)
{
dgData.Rows.Clear();
foreach(Control c in pnlDeficiency.Controls)
{
if ((c is CheckBox) && ((CheckBox)c).Checked)
dgData.Rows.Add(c.Text);
}
}
И мой код сохранения здесь.
private void btnSave_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Are You Sure You Want to Save the Record!", "TAC | Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
SqlConnection S_Conn = new SqlConnection(strConnString);
S_Conn.Open();
int a = 10;
for (int i = 0; i <= dgData.Rows.Count; i++)
{
string Query_Insert = "";
Query_Insert = "INSERT into Deficiency_Details (Vendor_Id, Tender_Id, DeficiencyType) values ('" + cmbSelectVendor.SelectedValue + "', '" + cmbSelectTender.SelectedValue + "', '" + dgData.Rows[i].Cells[0].Value.ToString() + "')";
SqlCommand Command_Insert = new SqlCommand(Query_Insert, S_Conn);
a = Command_Insert.ExecuteNonQuery();
}
if (a == 0)
{
MessageBox.Show("Record Not Saved Successfully! Please Check Fields", "TAC | Alert", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Record Saved Successfully", "TAC | Success", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
}
S_Conn.Close();
S_Conn.Dispose();
ResetAll();
}
}
Я получаю сообщение об ошибке: Index out of range. Я отладил свою программу, и ошибка в этой строке
dgData.Rows[i].Cells[0].Value.ToString()
Где VALUE становится NULL. Я знаю ошибку, и я решал ее много раз, но на этот раз она не решается вообще. пожалуйста, помогите мне.