【发布时间】:2009-10-14 14:06:01
【问题描述】:
我的 ASP.NET 应用程序中有 2 个数据表。我循环遍历它们,如果找到匹配项,我会从外部数据表中删除该特定行,如下所示:
For i As Integer = 0 To dtFixedActs.Count - 1
For j As Integer = 0 To dtTotals.Count - 1
If dtFixedActs.Rows(i).Item("Activity") = dtTotals.Rows(j).Item("Activity") Then
dtFixedActs.Rows(i).Delete()
i += 1
j += 1
End If
Next
dtFixedActs.AcceptChanges()
Next
这工作正常,除非 dtFixedActs 仅包含 1 行并且在其他数据表中找到匹配项。我收到“位置 1 没有行”错误。这是有道理的,因为 i+=1 我想进入下一行,在这种情况下这是不可能的。
我试图在 dtFixedActs.AcceptChanges 命令进出第一个循环,但无济于事。我还注释掉了 i+=1 行,但随后我得到“无法通过行访问已删除的行信息”。错误。
我不知道如何解决这个问题。当 dtFixedActs 包含多于 1 行时,不会出现问题。
有什么建议吗?
【问题讨论】: