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