以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除表中所有行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132806)

--  作者:mxl810823
--  发布时间:2019/3/30 8:45:00
--  删除表中所有行问题
Dim w As Integer = 0 
DataTables("ndys").AllowEdit = True
For w = 0 To DataTables("ndys").DataRows.count - 1
DataTables("ndys").DataRows(w).locked = False
DataTables("ndys").DataRows(w).delete()
w = w + 1
Next
MessageBox.Show(w)
我想删除ndys表中所有行,但是总是会跳出错误提示,说是索引超出或负数,执行不到MessageBox.Show(w)

--  作者:mxl810823
--  发布时间:2019/3/30 8:56:00
--  
Dim w As Integer = 0 
Tables("ndys").AllowEdit = True
Tables("ndys").position = 0
For Each n As Row In Tables("ndys").Rows 
n.locked = False
n.delete()
w = w + 1
Next
MessageBox.Show(w)

Tables("ndys").save()

改成这样是可以删除的,但是每执行一次就删除几行,还有部分在表里没有被删除的,这又为什么??

--  作者:有点蓝
--  发布时间:2019/3/30 9:06:00
--  
DataTables("ndys").DeleteFor("")


--  作者:mxl810823
--  发布时间:2019/3/30 9:27:00
--  
Dim bb As Integer = 0
Dim w As Integer = Tables("ndys").Rows.count
Tables("ndys").AllowEdit = True
Tables("ndys").position = w - 1
For n As Integer = w - 1 To 0 Step -1
 Tables("ndys").Rows(n).locked = False
Tables("ndys").Rows(n).delete()
bb = bb + 1
Next
MessageBox.Show(bb)

改成这样,搞好了, 删除行要从最后一行开始删除