private void Execute(CommandType commandType, bool executeEach) { if (executeWorker.IsBusy) { MessageBox.Show(this, "A command is already in execution, please wait...", this.ProductName); } else { try { var args = new CommandArgs(); args.CommandType = commandType; args.ExecuteEach = executeEach; IDbCommand command = DbCommandParser.Parse(this.database, SelectedText); if (command.Parameters.Count > 0) { using (ParamsDialog dialog = new ParamsDialog()) { IList <IDataParameter> newParameters = MergeParameters(command.Parameters); dialog.Parameters = newParameters; if (dialog.ShowDialog(this) == DialogResult.OK) { this.parameters = newParameters; command.Parameters.Clear(); foreach (IDataParameter p in newParameters) { command.Parameters.Add(p); } } else { command.Dispose(); return; } } } command.CommandTimeout = 0; args.DbCommand = command; args.RawCommandText = this.SelectedText; dataGridView.DataSource = null; ClearMessages(); statusLabel.Text = "Executing..."; EnableUI(false); stopwatch.Reset(); executingTimer.Start(); executeWorker.RunWorkerAsync(args); } catch (Exception ex) { ShowMessage("Exception:"); AppendMessage(ex.Message); executingTimer.Stop(); } } }
private void executeAndSaveToXslxToolStripMenuItem_Click(object sender, EventArgs e) { var command = DbCommandParser.Parse(this.database, SelectedText); if (command.Parameters.Count > 0) { using (ParamsDialog dialog = new ParamsDialog()) { IList <IDataParameter> newParameters = MergeParameters(command.Parameters); dialog.Parameters = newParameters; if (dialog.ShowDialog(this) == DialogResult.OK) { this.parameters = newParameters; command.Parameters.Clear(); foreach (IDataParameter p in newParameters) { command.Parameters.Add(p); } } else { command.Dispose(); return; } } } using (var xlsxDialog = new SaveFileDialog()) { xlsxDialog.Filter = "Excel Spreadsheet Document (*.xlsx)|*.xlsx"; if (xlsxDialog.ShowDialog(this) == DialogResult.OK) { var args = new ExecuteToXlsxArgs() { Command = command, FileName = xlsxDialog.FileName }; ProgressDialog.Run(this, "Executing...", executeToXlsxWorker, true, args); } } }