Ошибка при обновлении таблицы БД - 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);
}