Foxtable(狐表)用户栏目专家坐堂 → 一次性删除表中所有行的代码优化


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

主题:一次性删除表中所有行的代码优化

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 11:08:00 [显示全部帖子]

最简单的代码:

DataTables("A").DataRows.Clear()

 

另外建议看看这个:

http://www.foxtable.com/help/topics/0453.htm

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 11:23:00 [显示全部帖子]

1、同样的代码,加上这两行,会提速很多:

 

Dim sj As Date =Date.now
Tables("表A").StopRedraw
For Each dr As DataRow In DataTables("A").DataRows
    For i As Integer =Tables("A").Rows.count-1 To 0 Step -1
        DataTables("A").DataRows(i).delete
    Next
Next
Tables("表A").ResumeRedraw
output.show((Date.now-sj).Totalseconds)

2、

 

Dim sj As Date =Date.now
With Tables("表A")
    .Select(0, 0, .Rows.Count - 1, .Cols.Count - 1)
End With
Sendkeys.send("{ENTER}")
Syscmd.Row.delete()
output.show((Date.now-sj).Totalseconds)


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 11:35:00 [显示全部帖子]

从你原来的56秒多到7秒多,已经提速很多了,这个例子是告诉你批量操作的时候要注意什么。

 回到顶部