应有程序中……
----------------------------------
数据库都是用Access
VB 代码中更新数据:DAO  更新时保持连接。
        sql = "select a,b,c,d from aaa"
        Set rsLow = DbKaoWu.OpenRecordset(sql)
        RsDetail.Edit
        RsDetail.Fields("a") = a1
        RsDetail.Fields("b") = b1
        RsDetail.Fields("c") = c1
        RsDetail.Fields("d") = d1
        RsDetail.Update
C# 代码中更新数据: ADO
       1. 用insert into 语句, 更新时需要重新连接。
       2. 用DataSet的Update() 方法。更新时保持连接。问题:如果上面操作记录条数是1000左右的话
    vb 的大概需要1分半
    c# 的用SQL语句就要 15分钟。
         用第二种的话快一点点。具体时间忘了。比第一种快。但又比vb慢多了。
---------------------------
在C#中实现同样的功能。怎么和VB的相差那么远? 有没有更好的办法,在C#中的速度比VB的速度更快。不快也行,至少也要和VB的执行速度差不多吧!难道ADO就还不如DAO.
请高手指点,谢谢了。

解决方案 »

  1.   

    c# 的用SQL语句就要 15分钟?
    不可能的。
      

  2.   

    晕死
    楼上几位试过没有?
    我这开发软件的机子破那用户的怎么办?还有用Win98的。那不会死人呀。
      

  3.   

    把VB代码的流程原样搬过,结果倒是出来了。但速度就……
    都让俺产生了怎么不去学VB的想法了。
      

  4.   

    to ChengKing(bantamweight) :搂主的意思好像是问的DAO和ADO.NET哪个快?我想楼主的测试结果是正确的,现在DAO已经很少有人使用了(我写的第一个程序好像就是用的DAO),大部分使用的是ODBC、ADO或者ADO.NET。这里为什么DAO会比ADO.NET快呢,原因是:DAO是专门为Access设计的,其做了特殊的优化。而ADO.NET是使用OleDB链接Access数据库,它被设计的更通用,能访问更多的数据库,因此其并没有对Access做特殊的优化。这也就是为什么当我们连接Sql Server数据库的时候最好使用System.Data.SqlClient下的类而不是OleDb下的。详细信息请参考下面两个链接:
    Q225048 INFO: Issues Migrating from DAO/Jet to ADO/Jet
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q225048Q240434 HOWTO: Improve Performance of Applications Using Jet 4.0
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q240434
      

  5.   

    是啊, 专用的连接肯定要比通用的连接快, 不是VB或C#的问题.
      

  6.   

    只能说: 对 Access 来说, DAO 比 ADO.NET 快.