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); } }); }