2015-07-15 2 views
0

У меня есть datagridview в моей форме, которая требует времени для загрузки из базы данных. Мне нужно реализовать этот процесс в потоке backGroundWorker. Но я понятия не имею об этом.
Я googled, но я не мог найти решение для набора данных или метода tableAdapter. Как загрузить dataGridView в backgroundworker из набора данных?



это мой код:

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

вы можете создать 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 является способом, в котором вы будете использовать адаптеры и наборы данных/DataTables для заполнения и DataBind сетью (это метод, который назовет ваш LoadForm();). По завершении фоновой работник вызовет m_oWorker_RunWorkerCompleted, где вы вызовете свой метод filldatagrid(), чтобы связать данные с сеткой

+0

Как я могу отправить значения в пользовательский интерфейс. потому что этот метод не заполняет gridView. –

Смежные вопросы