Как скопировать данные из одной базы данных sqlite в другую базу данных sqlite в wpf? - PullRequest
0 голосов
/ 20 марта 2019

У меня есть 2 базы данных, которые PosOrderPayment, а другая - TempPosOrderPayment, обе имеют одну и ту же таблицу, которая Orders с одинаковыми атрибутами и столбцами.проблема в том, что я хочу получить все данные из TempPosOrderPayment и сохранить их в PosOrderPayment.Я хочу сделать код на бизнес-уровне (OrderBo).Я хочу избежать повторной вставки данных, поэтому я хочу получить и скопировать данные и строки из другой таблицы в другую базу данных, поскольку эти две вещи будут вставлены из двух разных приложений.

Прямо сейчас у меня есть что-то похожее на это

// это в моем платежном приложении

    public void InsertOrder(Order order)
    {
        try
        {               
         using (PosOrderPaymentDBContext db = new PosOrderPaymentDBContext())
            {
                db.Orders.Add(order);
                db.SaveChanges();
            }

      }
        catch (Exception ex)
        {
             CustomExceptionHandling customExceptionHandling = new CustomExceptionHandling();
            customExceptionHandling.CustomExHandling(ex.ToString());
        }
    }

// это мое кассовое приложение

 public void InsertOrder(Order order)
    {
        try
        {        
         using (tempPosOrderPaymentDBContext db = new tempPosOrderPaymentDBContext())
            {
                db.Orders.Add(order);
                db.SaveChanges();
            }
 }
        catch (Exception ex)
        {
             CustomExceptionHandling customExceptionHandling = new CustomExceptionHandling();
            customExceptionHandling.CustomExHandling(ex.ToString());
        }
    }

есть ли способ?

Сценарий подобен тому, когда пользователь нажимает кнопку Pay в приложении кассира, он сохраняет все данные в таблице Orders в базе данных TempPosOrderPayment, затем переходит в приложение оплаты.когда пользователь нажимает кнопку Payment в платежном приложении, он скопирует все данные в таблице Orders внутри TempPosOrderPayment и сохранит их в таблицу Orders внутри PosOrderPayment база данных

после того, как платеж завершит таблицу Orders в TempPosOrderPayment база данных будет пустой.и этот insert-copy-remove будет повторяться каждый раз, когда пользователь запускает приложение

1 Ответ

0 голосов
/ 20 марта 2019

Если я правильно понимаю вашу проблему, вы сначала фиксируете заказ клиента в приложении «Касса» и сохраняете его в базе данных 1 (TempPosOrderPayment), затем платеж подтверждается, и вы копируете этот заказ в приложении «Платеж» в другое база данных (PosOrderPayment).

Предполагая, что вы используете две отдельные базы данных, приведенный выше сценарий выглядит разумным, хотя и подвержен ошибкам - что если вы забудете удалить запись из TempPosOrderPayment после ее копирования в PosOrderPayment?

Если бы вам удавалось работать только в одной базе данных, вы могли бы использовать какое-либо поле состояния, чтобы указать бизнес-статус заказа (Получено, Подтверждено, Оплачено ...), а также использовать транзакции для обеспечения согласованности ваших данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...