应有程序中……
----------------------------------
数据库都是用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.
请高手指点,谢谢了。
UP一下
to ChengKing(bantamweight) :搂主的意思好像是问的DAO和ADO.NET哪个快?
我想楼主的测试结果是正确的,现在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;Q225048
Q240434 HOWTO: Improve Performance of Applications Using Jet 4.0
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q240434