Запрос UPDATE не обновляет данные в таблице БД C#
Не могу понять почему так происходит, я вроде бы всё правильно написал.
private void dataGridView3_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
accessGeneralData = true;
try
{
if (dataGridView3.Rows[e.RowIndex].Cells[2].Value != null)
{
for (int i = 0; i <= dsGeneralData.Tables["GeneralData"].Rows.Count - 1; i++)
{
string cellDataGrid = dataGridView3.Rows[e.RowIndex].Cells["Наименование"].Value.ToString();
string cellDataSet = dsGeneralData.Tables["GeneralData"].Rows[i]["Наименование"].ToString();
if (cellDataGrid == cellDataSet)
{
int boxes = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[2].Value);
int sold = Convert.ToInt32(dataGridView3.Rows[e.RowIndex].Cells[2].Value);
int elemRemains = Convert.ToInt32(dataGridView3.Rows[e.RowIndex].Cells[3].Value);
int remains = Convert.ToInt32(dataGridView3.Rows[e.RowIndex].Cells[4].Value);
int finRemains;
elemRemains = boxes - sold;
if (elemRemains < 0)
{
remains = remains + elemRemains;
for (int g = 1; remains <= 0; g++)
{
remains++;
elemRemains++;
if (elemRemains < 0)
{
MessageBox.Show("Невозможно вычесть из остатка недостающие число, так как остаток меньше нуля.",
"Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
finRemains = elemRemains + remains;
SqlCommand updateGeneralData = new SqlCommand($"UPDATE GeneralData SET Остаток @Ост WHERE Код = @Код", connection);
updateGeneralData.Parameters.AddWithValue("@Ост", finRemains);
updateGeneralData.Parameters.AddWithValue("@Код", i);
updateGeneralData.ExecuteNonQuery();
SqlCommand updateProduct = new SqlCommand($"UPDATE Product SET Остаток = @Ост WHERE Наименование = @Наименование", connection);
updateProduct.Parameters.AddWithValue("@Ост", finRemains);
updateProduct.Parameters.AddWithValue("@Наименование", cellDataSet);
updateProduct.ExecuteNonQuery();
}
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Команды надо диспозить
using (SqlCommand updateGeneralData = new SqlCommand($"UPDATE GeneralData SET Остаток @Ост WHERE Код = @Код", connection))
{
updateGeneralData.Parameters.AddWithValue("@Ост", finRemains);
updateGeneralData.Parameters.AddWithValue("@Код", i);
updateGeneralData.ExecuteNonQuery();
}
using (SqlCommand updateProduct = new SqlCommand($"UPDATE Product SET Остаток = @Ост WHERE Наименование = @Наименование", connection))
{
updateProduct.Parameters.AddWithValue("@Ост", finRemains);
updateProduct.Parameters.AddWithValue("@Наименование", cellDataSet);
updateProduct.ExecuteNonQuery();
}