Удаление строк из datagridview после вставки их в базу данных

Я написал программу, которая вставляет в базу данных штрих-код разных вещей. Прежде всего, я добавляю все штрих-коды в datagridview после того, как пользователь нажимает на кнопку, все штрих-коды вставляются в базу данных из datagridview.

перед тем, как каждый штрих-код вставляет в базу данных, я проверю его на наличие дубликатов.

Я хочу удалить каждый штрих-код из datagridview, когда каждый из них вставляет в базу данных.

но он работает неправильно

он просто вставляет некоторые из них в базу данных, а некоторые из них отображаются слева в представлении datagrid, вот его код:

Cnn.Open();
 foreach (DataGridViewRow row in dataGridView1.Rows)
 {
 SqlCommand cm = new SqlCommand("select BarcodeId from Bought_Product where BarcodeId='" + row.Cells[1].Value.ToString() + "'", Cnn);
 SqlDataReader dr = cm.ExecuteReader();
 if (dr.HasRows)
 {
 while (dr.Read())
 {
 MessageBox.Show(dr[0].ToString() + "تکراری می باشد");

 }
 dr.Close();
 }
 else
 {

 dr.Close();
 SqlCommand cmd2 = new SqlCommand("insert into Bought_Product (Persons_Id,Bought_Date,Bought_fac_num,BarcodeId) values ('" + textBox3.Text + "','" + textBox2.Text + "','" + textBox1.Text + "','" + row.Cells[1].Value.ToString() + "')", Cnn);
 cmd2.ExecuteNonQuery();
 MessageBox.Show(row.ToString());
 dataGridView1.Rows.Remove(row);
 }
 }
 Cnn.Close();
 }
1 ответ

У меня такая же проблема 2 дня назад... На самом деле моя программа отлично справляется. Пусть это поможет вам:

if (MessageBox.Show("Delete this Row?", "Löschen", MessageBoxButtons.YesNo) == DialogResult.Yes)
 {
 if (!this.dataGridView1.Rows[this.rowIndex].IsNewRow)
 {
 this.dataGridView1.Rows.RemoveAt(this.rowIndex);
 }

 }

licensed under cc by-sa 3.0 with attribution.