以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  删除行的代码释疑?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=66085)

--  作者:998168
--  发布时间:2015/3/30 0:33:00
--  删除行的代码释疑?
如题,代码如下:

For Each r As Row In CurrentTable.Rows
    r.Delete()
Next

上述代码理应可以删除当前表中所有的行,
(别的删除所有行的代码我也知道有,不用告诉我!只是想知道上述代码 why not 呢?)
可是执行后只能删除奇数行,这个算是 bug 吗?
如不算,那么怎么解释此代码呢?
群中有同学告诉我每执行一次删除后行的集合发生了变化,可我觉得虽然行的集合发生了变化,
可还是遍历所有的行啊!

--  作者:程兴刚
--  发布时间:2015/3/30 0:37:00
--  
遍历删除行只能从后面往前面删除,这不是bug!
--  作者:程兴刚
--  发布时间:2015/3/30 0:44:00
--  

这样删除:

For r As Integer = CurrentTable.Rows.Count-1 To 0 Step -1
    CurrentTable.Rows(r).Delete()
Next


--  作者:程兴刚
--  发布时间:2015/3/30 0:48:00
--  

或者这样:更简洁,清除更干净,一直干到datatable

 

CurrentTable.DataTable.DataRows.Clear


--  作者:有点甜
--  发布时间:2015/3/30 9:12:00
--  


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

 


--  作者:998168
--  发布时间:2015/3/30 22:12:00
--  
经甜版指导,突然恍然大悟啊!谢谢!也谢谢程版的热心帮助哦!