C# Access DataAdapter.Update()更新速度很慢,如何解决?3000条记录 20才完成持久化

leungzhq2000 2013-02-19 04:07:29
测试数据3000条 dbf文件
1业务说明:对数据进行派生计算,通过数据表中的某些字段计算出一个新值,并将新值写到某个字段yssz中。
2测试方法:将数据放到DataTable中,进行计算,并将数据集中的yssz字段,赋计算结果。此操作速度不到一秒。下一步将数据集中的结果持久化到数据库,此过程速度很慢大约20秒左右。
3和Delphi比较:delphi,是直接操作数据表,数据表即使没关键值也实现该功能,不到两秒就完成了。
4疑问:为什么C#操作dbf或者是Access的更新操作速度会如此的慢。请高手指教。谢谢!!
...全文
125 点赞 收藏 11
写回复
11 条回复
njw1028 2013年02月21日
引用 10 楼 leungzhq2000 的回复:
找到解决办法了! 用ADODB 可以实现 我自己解决了 应该不用给分了吧?
楼主这就不厚道了,有点儿“免费找人帮忙”的嫌疑
回复 点赞
leungzhq2000 2013年02月21日
找到解决办法了! 用ADODB 可以实现 我自己解决了 应该不用给分了吧?
回复 点赞
puler 2013年02月19日
LingQ使用DataTable更新,估计会快一点
回复 点赞
dalmeeme 2013年02月19日
Access肯定支持事务的,DBF不清楚。参数化SQL百度一下就知道了。
回复 点赞
leungzhq2000 2013年02月19日
for sh_i := 1 to tbl1.RecordCount do begin ……编辑过程 tbl1.Post; //提交 tbl1.Next; end 应该是游标遍历数据
回复 点赞
leungzhq2000 2013年02月19日
TADOCONNECTION连接到数据库,TTABLE连接到表
回复 点赞
种草德鲁伊 2013年02月19日
delphi如何直接操作?
回复 点赞
leungzhq2000 2013年02月19日
ExecuteNonQuery() 3000条记录 相当于执行3000次 5000条执行5000次
回复 点赞
leungzhq2000 2013年02月19日
直接操作也很慢
回复 点赞
dalmeeme 2013年02月19日
自己遍历DataTable每一行,参数化SQL,用ExecuteNonQuery()方法批量执行,外加事务,效率应该不错。
回复 点赞
种草德鲁伊 2013年02月19日
你也可以试试"直接"操作,不用DataAdapter
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告