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的更新操作速度会如此的慢。请高手指教。谢谢!!
...全文
332 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧