如何从数据集中加载backgroundworker中的dataGridView?

时间:2015-07-15 08:11:57

标签: c# sql datagridview backgroundworker

我的表单中有一个datagridview,从数据库加载需要时间。我需要在backGroundWorker Thread中实现这个过程。但是我对此一无所知。
我用谷歌搜索了但我找不到数据集或tableAdapter方法的解决方案。


这是我的代码:

private void frmNewExpense_Load(object sender, EventArgs e)
{
     LoadForm();
     fillDataGrid();
}

private void LoadForm()
{     
      this.tbl_AccountsTableAdapter.Fill(this.personalExpensesDataSet.tbl_Accounts);
      this.tbl_ExpSubCatsTableAdapter.Fill(this.personalExpensesDataSet.tbl_ExpSubCats);
      this.tbl_ExpenseCategoryTableAdapter.Fill(this.personalExpensesDataSet.tbl_ExpenseCategory);

      lblAccountAmount.Text = new oldSeparateThounsands().separate(lblAccountAmount.Text);

      oldGetPersianDate gpd = new oldGetPersianDate();
      gpd.dt = DateTime.Now;
      txtDate.Text = gpd.fn_persianDate();

      txtDesc.Text = txtAmount.Text = String.Empty;
}

private void fillDataGrid()
{
      this.view_Top100ExpensesTableAdapter.Fill(this.personalExpensesDataSet.View_Top100Expenses);
}

1 个答案:

答案 0 :(得分:0)

您可以在backgroundworker事件类中创建pageload,如下所示

m_oWorker = new BackgroundWorker(); m_oWorker.DoWork += new DoWorkEventHandler(m_oWorker_DoWork); m_oWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler (m_oWorker_RunWorkerCompleted); m_oWorker.WorkerSupportsCancellation = true;

m_oWorker_DoWork是一种方法,您将使用适配器和数据集/数据表来填充和数据化网格(它是一种将调用您的LoadForm();的方法)。完成后,后台工作人员将致电m_oWorker_RunWorkerCompleted,您将调用方法filldatagrid()将数据绑定到网格