winform里面插入数据到数据库会卡几秒到10几秒如何解决。

winform里面插入数据到数据库会卡几秒到10几秒怎么解决。。。
如题,就是winform的项目,同时插入2000条数据的时候会卡一段时间。这样用户体验不好,有什么办法可以解决的吗?我想让用户没卡的感觉。。。要怎么样弄。
------解决思路----------------------
插入的时候,开启线程,让线程去操作,同时界面上给用户提醒正在数据处理。
------解决思路----------------------
如果只是简单的单向操作,你可以选择 bcp 技术

减少你的数据库操作时间,这样来减少数据处理时间

如果要UI不卡,只能用多线程
------解决思路----------------------
怎么插入的?拼接sql语句 使用sqlbulkcopy +多线程
------解决思路----------------------
是不是单条数据循环写入的?
如果写入数据主键不重复,可以考虑使用bulkinsert,批量入库秒级完成;
如果数据入库要验证,那就只能
把操作挪到线程中,避免主线程出现无响应的情况
------解决思路----------------------
如果数据库是sqlserver,参考这个:
http://msdn.microsoft.com/zh-cn/library/ms175915.aspx
------解决思路----------------------
使用批量插入,2000条很快。
------解决思路----------------------
SqlBulkCopy 批量插入
------解决思路----------------------
你这个问题要分两步走
1.想办法提高插入数据库的效率,比如前面提到的批量插入
2.想办法让窗体不卡,或者即使卡,提高用户体验
让窗体不卡,把入库的操作放到线程里去,不过这样一来,可能会让用户产生误会,以为操作就算完成了,这时他可能就把窗口关闭了之类的,或者连续点了按钮很多次
另一种做法是在线程里弹出个窗口,显示个等待
------解决思路----------------------
不论你是怎么插入 (总觉得这句话有歧义..= = .)数据量大的话总会有延迟..1楼的处理方式和我相同,  推荐你开一个子线程去处理插入
主界面上显示一个进度条,插入的同时操作进度条..这样..用户就会感觉程序是在运行 而不是卡死..
------解决思路----------------------
尽量少拼接SQL 开启线程进行插入
------解决思路----------------------
最简单的,弹出等待窗体。
2000条数据不多,建议使用Sql事物插入,如果出错还可以回滚
------解决思路----------------------
引用:
SqlBulkCopy 批量插入

+1   事务
------解决思路----------------------
SqlBulkCopy 
------解决思路----------------------
用个进度条winform里面插入数据到数据库会卡几秒到10几秒如何解决。
------解决思路----------------------
lz可以使用异步方式处理这些写入数据库的操作了,最简单的办法是使用BackgroundWorker组件实现异步执行任务,并能接收到任务的进度信息。
------解决思路----------------------
开线程。。。。

还有sqlbulkcopy只能给微软自己的sqlserver用。。
------解决思路----------------------
引用:
lz可以使用异步方式处理这些写入数据库的操作了,最简单的办法是使用BackgroundWorker组件实现异步执行任务,并能接收到任务的进度信息。


引用:
用个进度条winform里面插入数据到数据库会卡几秒到10几秒如何解决。


BackgroundWorker+进度条,能做到异步线程实现+完美的用户体验。数据库操作建议使用事务,参数为ArrayList。
BackgroundWorker真的很好用,MSDN给出的demo非常棒,值得一试。
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker.aspx