不好意思我是新人分数全部花去下载了请见谅!
我有6个Excel文件想插入Access数据库,用backgroundworker来执行插入Access数据库的动作。
  现在问题就是不会循环执行backgroundworker 因为需要backgroundworker 执行成功后再接着执行下一个excel文件。
我的思路是
  foreach(遍历excel文件)
{
  执行backgroundworker
}

解决方案 »

  1.   

    backgroundworker 不是多线程操作。。你如果是要同时导入,那应该考虑用thread,backgroundworker 只是把操作放入后台,跟前台桌面剥离开来。但是在backgroundworker 里执行的还是单线程
      

  2.   

            private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
            {            foreach(遍历excel文件)
                  {
                 插入到Access
                }
             }
      

  3.   

    可能我说的还是不清楚 , 我是遍历完Excel然后一个一个导入到Access当中,并不是多线程吧(同一Access好像用sql语句只能同时打开一个吧)。li_qiang_sc 你的方法,我试过但是数据量一大的话直接没反应了。你的方法好像和没有用BackgroundWorker一样吧。
      

  4.   

    BackgroundWorker _backgroundworker = new BackgroundWorker() { WorkerSupportsCancellation = true };
    private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
       {   foreach(遍历excel文件)
       {
       插入到Access
       }
       }
    _backgroundworker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork);
    _backgroundworker.RunWorkerAsync(
      

  5.   

    Excel是一个文件,还是多个Excel文件.
    还是一个Excel里多个sheet
      

  6.   

    后台加PROCESS如何?
    我原来做过一个视频转换软件,里面用到这个了。批量转换,利用FTP上传。
      

  7.   

    我自己解决了 先
                backgroundWorker1.RunWorkerAsync();
    在 backgroundWorker1_RunWorkerCompleted
    中接着运行 backgroundWorker1.RunWorkerAsync();
    之间加个判断是否终止循环