以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  .save 的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176798)

--  作者:edisontsui
--  发布时间:2022/4/27 10:15:00
--  .save 的问题

(1) DataTables("组装送货单").save

(2)

    Dim dr16 As String =  e.DataRow("已完成")

    For i As Integer = 0 To drs.Count-1

        drs(i)("已完成") = dr16

        drs(i).save

    Next

(3)        Dim dr14 As String=  e.DataRow("票号1")

            For i As Integer = 0 To drs.Count-1

                drs(i)("票号1") = dr14

            Next

            e.DataRow.save


上面三种保存方式都是在 datacolchanged 里面的,请问哪个保存方式是最快的?


--  作者:有点蓝
--  发布时间:2022/4/27 10:18:00
--  
第一种,整个表一起保存
--  作者:edisontsui
--  发布时间:2022/4/27 10:29:00
--  
是不是可以这样理解:
第1种保存方法,理论上耗时多点,而第2、3种方法理论上会节省一些时间?
另外,第2、3种方法的 save 放在不同位置,效果是一样的吗?

--  作者:有点蓝
--  发布时间:2022/4/27 10:45:00
--  
不是的。

比如表A有10行数据要保存,第一种只需要连接一次数据库,把数据提交保存即可。第2、3种方法是按行保存的,每一行都要连接一次数据库,理论上把第一种慢多了,行数越多差距越明显,就越慢。

第2种方法和第3种方法保存的还不是通一个东西,第2种方法保存的是drs这个集合的行,有多少行就保存多少次;第3种方法保存的是e.DataRow,只有一行。

一般情况下,不想保存整个表数据,只想保存部分行的情况下,才需要按行保存,否则建议按表保存