Ошибка при обновлении таблицы БД - C#
Формулировка задачи:
Добрый вечер. Подскажите пожалуйста в чем проблема. Вношу новую запись в таблицу пытаюсь обновить и вылезает ошибка "Concurrency violation: the UpdateCommand affected 0 of the expected 1 records". Это только если вносить изменения в новую строку. Если вносить изменения в имеющееся строки то обновляет без проблем.
Вот код добавления записи программно (при добавлении вручную тоже самое)
Кнопка обновления
А вот UpdateCommand
До этого по такой же схеме все работало вроде.
Помогите пожалуйста.
private void каталогПродукцииToolStripMenuItem_Click(object sender, EventArgs e) { //Вызов формы пополнения каталога продукции Form6 Products = new Form6(); if (Products.ShowDialog() == DialogResult.OK) { this.naimenovanie = Products.naimenovanie; this.productNumber = Products.productNumber; string[] PrNames = naimenovanie.Split('/'); string[] PrNumbers = productNumber.Split('/'); for (int i = 0; i < 3; i++) { if (dataGridView1.Rows.Count < 3) { katalogPlanDataSet.Table_1.Rows.Add(); } dataGridView1.Rows[i].Cells[0].Value = System.Convert.ToInt32(PrNumbers[i]); dataGridView1.Rows[i].Cells[1].Value = PrNames[i]; } } }
table_1TableAdapter.Update(this.katalogPlanDataSet.Table_1);
UPDATE Table_1 SET [Наименование продукции] = @value1, Производительность = @value2, Спрос = @value3 WHERE ([Номер продукта] = @ProductNumber)
Есть подозрение что это из-за того, что строка, которую я хочу заполнить создана программно.
Теперь не знаю что с ней сделать. Как удалить можно.
Решение задачи: «Ошибка при обновлении таблицы БД»
textual
Листинг программы
//Вызов формы пополнения каталога продукции Form6 Products = new Form6(); if (Products.ShowDialog() == DialogResult.OK) { this.naimenovanie = Products.naimenovanie; this.productNumber = Products.productNumber; string[] PrNames = naimenovanie.Split('/'); string[] PrNumbers = productNumber.Split('/'); for (int i = 0; i < 5; i++) { if (dataGridView1.Rows.Count < 5) { katalogPlanDataSet8.Table_5.Rows.Add(); } katalogPlanDataSet8.Table_5.BeginInit(); dataGridView1.Rows[i].Cells[0].Value = System.Convert.ToInt32(PrNumbers[i]); dataGridView1.Rows[i].Cells[1].Value = PrNames[i]; } katalogPlanDataSet8.Table_5.EndInit(); table_5TableAdapter.Update(katalogPlanDataSet8.Table_5); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д