示例#1
0
        internal Exception ExecuteDeleteCommand(UniDbCommand cmd)
        {
            IDbTransaction transact = Connection.BeginTransaction();

            try
            {
                cmd.ExecuteNonQuery();
                DataRow.Delete();
                DataRow.AcceptChanges();
                transact.Commit();
                return(null);
            }
            catch (Exception ex)
            {
                transact.Rollback();
                return(ex);
            }
        }
 /// <summary>
 /// Асинхронно выполняет команду и при ошибках показывает сообщение, иначе если все успешно прошло, выполняет делегат
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="caption"></param>
 /// <param name="argument"></param>
 /// <param name="execCommand"></param>
 /// <param name="workSuccessEnded"></param>
 public static void RunAsyncWithWaitDialog(DependencyObject sender, string caption, UniDbCommand execCommand, RunWorkerCompletedEventHandler workSuccessEnded)
 {
     AbortableBackgroundWorker.RunAsyncWithWaitDialog(sender, caption,
                                                      (p, pw) =>
     {
         execCommand.ExecuteNonQuery();
     }, null, execCommand,
                                                      (p, pw) =>
     {
         if (pw.Cancelled)
         {
             return;
         }
         else if (pw.Error != null)
         {
             MessageBox.Show(pw.Error.GetFormattedException(), "Ошибка получения данных");
         }
         else
         {
             workSuccessEnded(p, pw);
         }
     });
 }