我的表单中有一个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);
}
答案 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()
将数据绑定到网格