以文本方式查看主题

-  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=12856)

--  作者:169163
--  发布时间:2011/9/18 10:27:00
--  请教错误原因

准备删除“员工”表的记录,出现错误,请指教,谢谢

 

Dim hs As Integer
For hs=0 To e.DataRow.count
   DataTables("员工").DataRow(hs).delete()
Next


--  作者:e-png
--  发布时间:2011/9/18 10:38:00
--  

你是要删除所有行?  是用按钮删除还是其他?

[此贴子已经被作者于2011-9-18 10:40:01编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/18 10:43:00
--  

错误很多

 

常识错误:

1、DataRow有Count属性吗?

2、行的编号从0开始,最后一行是Count-1,不是Count

 

逻辑错误:

1、假定有3行。

2、第一次执行,hs等于0,删除第一行,原来的第二行成了第一行,第三行成了第二行

3、第二次执行,hs等于1,删除的是现在的第二行,也就是原来的第三行。

3、第三次执行,hs等于2,要删除现在的第三行,可实际上现在只有1行,何来第三行,所以一定会出错。

 

删除所有行的代码很简单:

DataTables("员工").DeleteFor("True")

 

或者:

DataTables("员工").DataRows.Clear

 

 

 

 

[此贴子已经被作者于2011-9-18 10:42:56编辑过]