以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 请教:这个问题是怎样造成的呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27810)
|
-- 作者:关键下一秒
-- 发布时间:2013/1/10 19:33:00
-- 请教:这个问题是怎样造成的呢?
Dim drs As List (of DataRow) = t.DataTable.Select(flt) If drs.count>0 Then For Each dr As DataRow In drs If dr IsNot Nothing Then dr.Delete() End If Next t.DataTable.save End If
\'flt 为过滤公式。确认无问题。每次删除了一条记录后就会出示以下错误:
此主题相关图片如下:未命名.jpg
经测试,这个错误是在 dr.delete() 语句产生的。
[此贴子已经被作者于2013-1-10 19:33:41编辑过]
|
-- 作者:有点甜
-- 发布时间:2013/1/10 19:54:00
--
做个例子发上来
|
-- 作者:e-png
-- 发布时间:2013/1/10 20:02:00
--
从最后一行往前面行逐行删除才行。
|
-- 作者:关键下一秒
-- 发布时间:2013/1/10 20:28:00
--
以下是引用e-png在2013-1-10 20:02:00的发言: 从最后一行往前面行逐行删除才行。
如何从最后一行往前面逐行删除呢?
|
-- 作者:e-png
-- 发布时间:2013/1/10 22:48:00
--
select 用_Identify 倒序试试
不行这样 for i as integer = drs.count-1 to 0 step -1 试试吧。
|
-- 作者:lin_hailun
-- 发布时间:2013/1/11 11:53:00
--
又或者这样
Dim drs As List (of DataRow) = t.DataTable.Select(flt) If drs.count>0 Then For i as integer = 0 to drs.count - 1 drs(0).delete Next t.DataTable.save End If
|
-- 作者:关键下一秒
-- 发布时间:2013/1/11 12:56:00
--
林总,你的方法行不通啊,又提示另一个错误:不能通过已删除的行访问该行的信息.
[此贴子已经被作者于2013-1-11 13:11:59编辑过]
|
-- 作者:关键下一秒
-- 发布时间:2013/1/11 13:12:00
--
林总,你的方法行不通啊,又提示另一个错误:不能通过已删除的行访问该行的信息. |
|
-- 作者:Liuxinyu
-- 发布时间:2013/1/11 14:25:00
--
请教各位:
既然是删除行,为什么不是直接删除,而是查询之后再删除。既费时,又费力。
t.datatable.deletefor(flt)
t.datatable.save
在什么情况下,会产生类似楼主的删除动作?
[此贴子已经被作者于2013-1-11 14:26:15编辑过]
|
-- 作者:lin_hailun
-- 发布时间:2013/1/11 15:04:00
--
恩恩,确实,9楼正解。看到本质了。
|