Обновить запрос всегда обновлять ноль до базы данных - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь обновить поле 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 здесь обновляется как ноль.

...