以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  动态增加多行并赋值,速度很慢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97902)

--  作者:goldenfont
--  发布时间:2017/3/20 20:19:00
--  动态增加多行并赋值,速度很慢
用代码增加1万条记录,每条记录赋值,每AddNew一条然后赋值,比较慢,有啥快的方法吗?
--  作者:goldenfont
--  发布时间:2017/3/20 20:22:00
--  
StopRedraw和ResumeRedraw已使用的情况下
--  作者:有点蓝
--  发布时间:2017/3/20 20:43:00
--  
贴出你的完整代码


http://www.foxtable.com/webhelp/scr/1935.htm



--  作者:goldenfont
--  发布时间:2017/3/22 13:47:00
--  
DataTables(tblName).StopRedraw
For i As Integer = 0 To max \'一般这里是10000行数据
    Dim dr As DataRow = DataTables(tblName).AddNew()
    dr("固定位数") = digit
    dr("校验位") = Functions.Execute("计算校验位",digit) \'根据固定位数算出校验位
    dr("合并显示") = digit & dr("校验位") \'合并起来显示
    dr("是否分配") = False
    dr("是否禁用") = False
Next
DataTables(tblName).ResumeRedraw
DataTables(tblName).Save() \'增加完毕后保存表

--  作者:有点色
--  发布时间:2017/3/22 14:54:00
--  
Systemready = False
DataTables(tblName).StopRedraw
For i As Integer = 0 To max \'一般这里是10000行数据
    Dim dr As DataRow = DataTables(tblName).AddNew()
    dr("固定位数") = digit
    dr("校验位") = Functions.Execute("计算校验位",digit) \'根据固定位数算出校验位
    dr("合并显示") = digit & dr("校验位") \'合并起来显示
    dr("是否分配") = False
    dr("是否禁用") = False
Next
DataTables(tblName).ResumeRedraw
msgbox("新增完毕")
DataTables(tblName).Save() \'增加完毕后保存表
msgbox("保存完毕")
Systemready = True