private async void searchButton_Click(object sender, EventArgs e) { FindObjectQuery query = new FindObjectQuery(System.IO.Path.GetDirectoryName(Application.ExecutablePath) + @"\Resources\SQL\FindObject.sql", fromDate.Text, toDate.Text, entityTextBox1.Text, entityTextBox2.Text, entityTextBox3.Text); var quer = QueryRepo.FindObject; quer.Params = new ParamObject( $@"'{fromDate.Value:MM/dd/yyyy}'", $@"'{toDate.Value:MM/dd/yyyy}'", $@"'{entityTextBox1.Text}'", string.IsNullOrEmpty(entityTextBox2.Text) ? "" : $@"OR PRIMARY_KEY LIKE '{entityTextBox2.Text}'", string.IsNullOrEmpty(entityTextBox3.Text) ? "" : $@"OR PRIMARY_KEY LIKE '{entityTextBox3.Text}'"); dataGridView1.DataSource = bindingSource1; dataGridView1.Hide(); progressBar1.Visible = true; var result = await QueryManager.Query(quer.QueryDynamication()); bindingSource1.DataSource = result; progressBar1.Visible = false; dataGridView1.Show(); }
private void TriggerBgWorkerForQuery(FindObjectQuery query) { progressBar1.Visible = true; BackgroundWorker backgroundWorker = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; backgroundWorker.DoWork += (o, args) => { FindObjectQuery report = args.Argument as FindObjectQuery; try { args.Result = report?.DoQuery(); } catch (Exception e) { MessageBox.Show(e.Message); } }; backgroundWorker.RunWorkerCompleted += (o, args) => { DataTable workerResult = (DataTable)args.Result; bindingSource1.DataSource = workerResult; dataGridView1.DataSource = bindingSource1; progressBar1.Visible = false; }; backgroundWorker.RunWorkerAsync(query); }