C# winform处理拖拽到上面的数据
时间:2011-12-14
来源:互联网
不好意思我是新人分数全部花去下载了请见谅!
我想问下 我把有一个文件夹里面是excel文件 (这个是要导入到access的)
我用backgroundworker做后台线程(插入access数据库)
现在我想把文件夹拖放到winform上就能全部插入access数据库
现在问题就是不会循环执行backgroundworker 因为需要backgroundworker 执行成功后再接着执行下一个excel文件。
请教大侠怎么做!
我想问下 我把有一个文件夹里面是excel文件 (这个是要导入到access的)
我用backgroundworker做后台线程(插入access数据库)
现在我想把文件夹拖放到winform上就能全部插入access数据库
现在问题就是不会循环执行backgroundworker 因为需要backgroundworker 执行成功后再接着执行下一个excel文件。
请教大侠怎么做!
作者: dxl3811051 发布时间: 2011-12-14
1.BackGroundworker一般在你需要报告状态的时候使用,比如说进度条...
2.根据业务需要,可以重新包装BackGroundworker,这是很有用的,而且可以从结构层次上剥离业务与表现;
3.其次,循环执行backgroundworker本身思路就不对,就你的需求而言,我可以遍历文件,然后每次开个线程去处理即可,这里的关键应该是进度统计的问题;
foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker();
worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
});
worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
}
4.多线程同时操作,这个进度控制就是个问题,我们可以用一种数据结构来保存每个线程的全部或局部数据,每个workerCompleted将其压栈处理
List<BackGroundworker> list=new List<BackGroundworker>();
foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker();
worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
});
worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//list.count和遍历Excel文件的count来得出当前进度
});
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//压栈
});
}
5.类推,可以使用琢磨下步骤2,进行封装
2.根据业务需要,可以重新包装BackGroundworker,这是很有用的,而且可以从结构层次上剥离业务与表现;
3.其次,循环执行backgroundworker本身思路就不对,就你的需求而言,我可以遍历文件,然后每次开个线程去处理即可,这里的关键应该是进度统计的问题;
foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker();
worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
});
worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
}
4.多线程同时操作,这个进度控制就是个问题,我们可以用一种数据结构来保存每个线程的全部或局部数据,每个workerCompleted将其压栈处理
List<BackGroundworker> list=new List<BackGroundworker>();
foreach(遍历Excel文件)
{
BackGroundworker worker=new BackGroundworker();
worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
});
worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//list.count和遍历Excel文件的count来得出当前进度
});
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
//压栈
});
}
5.类推,可以使用琢磨下步骤2,进行封装
作者: ZeroKiseki 发布时间: 2011-12-14
大侠 问下
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 无法将类型“System.ComponentModel.ProgressChangedEventHandler”隐式转换为“System.ComponentModel.RunWorkerCompletedEventHandler”
我改成
worker.RunWorkerCompleted+=new RunWorkerCompletedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 “System.ComponentModel.RunWorkerCompletedEventArgs”不包含采用“1”个参数的构造函数
我很笨不知道怎么修改。请提点一二!
worker.RunWorkerCompleted+=new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 无法将类型“System.ComponentModel.ProgressChangedEventHandler”隐式转换为“System.ComponentModel.RunWorkerCompletedEventHandler”
我改成
worker.RunWorkerCompleted+=new RunWorkerCompletedEventHandler((sender,e)=>
{
//ToDo
});
错误 1 “System.ComponentModel.RunWorkerCompletedEventArgs”不包含采用“1”个参数的构造函数
我很笨不知道怎么修改。请提点一二!
作者: dxl3811051 发布时间: 2011-12-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28