Я пытаюсь обновить поле due_amount
таблицы клиента, если mode_of_payment
равно credit
. Запрос работает нормально, когда я вставляю его прямо в базу данных. Но когда он проходит через транзакции, значение обновляется как ноль.
Я пробовал и то и другое: написать обычный запрос и передать транзакцию, а также создать общие функции для создания запроса. Запрос, полученный обоими способами, прекрасно работает, когда напрямую вставляется в базу данных. Но когда попробуйте запустить его через обновления значения кода как ноль
Это запрос, созданный и переданный транзакции.
TransactionQueryList.Add("UPDATE `customer_info` SET `due_amount` =
`due_amount`+'"+ Math.Round(NewBalance,2)+"'WHERE `customer_id` = '"+ CustomerID+"'");
Это запрос выше, который производит
UPDATE `customer_info` SET `due_amount` = `due_amount`+'241.2' WHERE
`customer_id` = 'UAUYMMKTQC'
Этот запрос работает при вставке в базу данных. но не работает, когда я прохожу через транзакции
Вот мой код транзакции:
try
{
for (int i = 0; i < Queries.Count; i++)
{
Command.CommandText = Queries[i];
//MessageBox.Show(Queries[i]);
Command.ExecuteNonQuery();
}
Transaction.Commit();
}
catch (Exception)
{
try
{
Transaction.Rollback();
return 0;
}
catch (Exception)
{
return 0;
}
}
finally
{
Instance.CloseConnection();
}
Ожидаемый результат
Если mode_of_payment
является кредитом, то due_amount
следует добавить к текущей сумме и сохранить сумму в базе данных.
Фактический результат
due_amount
здесь обновляется как ноль.