vb.net如何删除datatable中满足条件的某行

想飞的狼 2009-05-23 05:09:32
下面的语句想删除LDS中店名列等于rm变量的行,可是总出错提示某行没有记录,各位高手你们一般都用什么方法删除DTATTABLE中的满足条件的某行呢?


            Dim i As Integer
For i = 0 To lds.Rows.Count - 1
If lds.Rows(i)("店名").ToString = rm Then

lds.Rows.RemoveAt(i)

End If

Next
...全文
996 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jilinhuizu 2012-04-28
  • 打赏
  • 举报
回复
正需要这个,谢谢
ryuubintou 2009-05-27
  • 打赏
  • 举报
回复
店名不会重复即只删除1行的情况
Dim i As Integer
For i = 0 To lds.Rows.Count - 1
If lds.Rows(i)("店名").ToString = rm Then

lds.Rows.RemoveAt(i)
Exit For
End If
Next
店名会重复即删除复数行的情况
Dim i As Integer
Dim list As ArrayList = New ArrayList()
For i = 0 To lds.Rows.Count - 1
If lds.Rows(i)("店名").ToString = rm Then
list.Add(i)
End If
Next

For i = 0 To list.Count - 1
lds.Rows.RemoveAt(list(i))
Next
古今多少事 2009-05-25
  • 打赏
  • 举报
回复
回复bw555:我的记录有一千多行,其中符合我删除条件的有20来行。不知道什么原因。
bw555 2009-05-25
  • 打赏
  • 举报
回复
i=3时就报错时一共有多少记录啊?

只能是这个原因,你调试时你看看报错时i的值和记录行数,看看哪个大

[Quote=引用 8 楼 ASDFY 的回复:]
引用 7 楼 bw555 的回复:
假设你有10行,到第五行,删掉了,这样就还剩下9行,

这样到你循环到第十行的时候就报这个错了,因为第十行已经没记录了

不知道我说清楚没有,呵呵


不对呀,我调试时发现循环变量i=3时就报错了:“不能通过已删除的行访问该行的信息”。
[/Quote]
wuyq11 2009-05-24
  • 打赏
  • 举报
回复
int x = dt.Rows.Count - 1;
for (int i = x; i >= 0 ; i--)
{
if (i % 2 == 1)
{
try
{
dt.Rows.RemoveAt(i);
break;
}
catch (Exception ex)
{ }
}
}
或先用select查询再删除
古今多少事 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bw555 的回复:]
假设你有10行,到第五行,删掉了,这样就还剩下9行,

这样到你循环到第十行的时候就报这个错了,因为第十行已经没记录了

不知道我说清楚没有,呵呵
[/Quote]

不对呀,我调试时发现循环变量i=3时就报错了:“不能通过已删除的行访问该行的信息”。
bw555 2009-05-24
  • 打赏
  • 举报
回复
假设你有10行,到第五行,删掉了,这样就还剩下9行,

这样到你循环到第十行的时候就报这个错了,因为第十行已经没记录了

不知道我说清楚没有,呵呵
gzhantonio 2009-05-24
  • 打赏
  • 举报
回复
顶起来,等高手解答原理,关注
cyh840910 2009-05-23
  • 打赏
  • 举报
回复
同样想知道。
想飞的狼 2009-05-23
  • 打赏
  • 举报
回复
顶起来
古今多少事 2009-05-23
  • 打赏
  • 举报
回复
对呀,为什么呢?

我在VB2005中试了一下,提示和楼主的差不多:“不能通过已删除的行访问该行的信息

期待中!
想飞的狼 2009-05-23
  • 打赏
  • 举报
回复
为什么呢
bw555 2009-05-23
  • 打赏
  • 举报
回复
从后向前就ok了
Dim i As Integer
For i = lds.Rows.Count - 1 to 0 step -1
If lds.Rows(i)("店名").ToString = rm Then

lds.Rows.RemoveAt(i)

End If

Next

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧