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


  共有10637人关注过本帖平板打印复制链接

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

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
一次性删除表中所有行的代码优化  发帖心情 Post By:2011/12/9 10:38:00 [只看该作者]

狐爸及各位狐狸朋友们,大家好!对于一次性删除表中的所有行的代码,有好几种方法,但所用时间都各有不同,现针对系统自带的学习文件《代码优化》项目中的“表A”里10000行来测试,我想到了三种方式,所用时间相差很大,现转给大家参考

 第一种:

Dim sj As Date =Date.now

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

output.show((Date.now-sj).Totalseconds)

需时56.92秒

第二种:

Dim sj As Date =Date.now

DataTables("A").deletefor("项目 is not null")

output.show((Date.now-sj).Totalseconds)

需时3.625秒

第三种:

Dim sj As Date =Date.now

With Tables("A")

    .Select(0, 0, .Rows.Count - 1, .Cols.Count - 1)

End With

Syscmd.Row.delete()

output.show((Date.now-sj).Totalseconds)

需时0.59秒

对于第三种情况,系统会弹出一个对话框,用户需及时“回车”确定,回车的时间决定了反应的速度!

另我想请问狐爸,为什么我加入模拟回车键无效的(sendkeys.send("{enter}"),如果能自动回车,速度会更快,请狐爸指点!


 


 回到顶部