测试数据3000条 dbf文件
1业务说明:对数据进行派生计算,通过数据表中的某些字段计算出一个新值,并将新值写到某个字段yssz中。
2测试方法:将数据放到DataTable中,进行计算,并将数据集中的yssz字段,赋计算结果。此操作速度不到一秒。下一步将数据集中的结果持久化到数据库,此过程速度很慢大约20秒左右。
3和Delphi比较:delphi,是直接操作数据表,数据表即使没关键值也实现该功能,不到两秒就完成了。
4疑问:为什么C#操作dbf或者是Access的更新操作速度会如此的慢。请高手指教。谢谢!!accessc#delphi数据库

解决方案 »

  1.   

    你也可以试试"直接"操作,不用DataAdapter
      

  2.   

    自己遍历DataTable每一行,参数化SQL,用ExecuteNonQuery()方法批量执行,外加事务,效率应该不错。
      

  3.   

    ExecuteNonQuery()  3000条记录 相当于执行3000次  5000条执行5000次
      

  4.   

    TADOCONNECTION连接到数据库,TTABLE连接到表 
      

  5.   

    for sh_i := 1 to tbl1.RecordCount do
    begin
      ……编辑过程
       tbl1.Post; //提交
       tbl1.Next;
    end
    应该是游标遍历数据
      

  6.   

    Access肯定支持事务的,DBF不清楚。参数化SQL百度一下就知道了。
      

  7.   

    LingQ使用DataTable更新,估计会快一点
      

  8.   

    找到解决办法了! 用ADODB 可以实现 
    我自己解决了 应该不用给分了吧?