0
我有一種方法將數據插入到for loop
內的MySql
數據庫中。帶MySql的BackgroundWorker無法正常工作
插入的數量可能會很多,所以我的程序在插入過程中會凍結。
所以我想盡量把它放在一個BackgroundWorker
,但它不工作按計劃進行......
一些插入我得到我的連接已經打開一個異常後
這裏是如何我這樣做:
if (dbPos.connOpen())
{
// inserts one row, works fine because data is present in db
dbPos.checkOut(prijs, wie);
// this works for a few inserts,
// but after a couple it will tell me my conn is already open
worker.RunWorkerAsync(); // inserts many rows
}
dbPos.connClose();
我BackgroundWorker
方法:
void worker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < chartList.Count; i++)
{
switch (this.countChart(i))
{
... Do work ... // insert rows
}
}
}
而且我的方法將實際值插入數據庫:
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
... parameters ....
cmd.ExecuteNonQuery();
}
因此,如何能解決我這個神祕的問題呢?
謝謝你,先生。在我的第一個插入方法中,我打開並關閉了我的連接。然後對於我在'DoWork'處理程序中打開和關閉的許多插入。很棒! – DeMama