Foxtable(狐表)用户栏目专家坐堂 → 动态增加多行并赋值,速度很慢


  共有1726人关注过本帖树形打印复制链接

主题:动态增加多行并赋值,速度很慢

帅哥哟,离线,有人找我吗?
goldenfont
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3874 威望:0 精华:0 注册:2016/4/25 17:36:00
动态增加多行并赋值,速度很慢  发帖心情 Post By:2017/3/20 20:19:00 [只看该作者]

用代码增加1万条记录,每条记录赋值,每AddNew一条然后赋值,比较慢,有啥快的方法吗?

 回到顶部
帅哥哟,离线,有人找我吗?
goldenfont
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3874 威望:0 精华:0 注册:2016/4/25 17:36:00
  发帖心情 Post By:2017/3/20 20:22:00 [只看该作者]

StopRedraw和ResumeRedraw已使用的情况下

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/20 20:43:00 [只看该作者]

贴出你的完整代码


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



 回到顶部
帅哥哟,离线,有人找我吗?
goldenfont
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3874 威望:0 精华:0 注册:2016/4/25 17:36:00
  发帖心情 Post By: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() '增加完毕后保存表

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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

 回到顶部