Vb.net 从数据表中删除行时出错:";位置X处没有行。”;
尝试从数据表中删除行时,我遇到以下运行时错误Vb.net 从数据表中删除行时出错:";位置X处没有行。”;,vb.net,datatable,runtime-error,row,Vb.net,Datatable,Runtime Error,Row,尝试从数据表中删除行时,我遇到以下运行时错误dt: 位置24处没有行。 位置20处没有行 下面是代码(第3行导致错误): 使用Try Catch块,我发现每当出现错误时,索引变量I的值就等于dt.Rows.Count,这可能是错误的原因。但是,我不清楚i如何假定这个值,因为我正在从dt.Rows.Count-1 你知道我做错了什么吗?问题是你正在删除行,而你正在继续使用bucle: For i As Integer = dt.Rows.Count -1 To 0 Step -1
dt
:
位置24处没有行。位置20处没有行 下面是代码(第3行导致错误): 使用
Try Catch
块,我发现每当出现错误时,索引变量I
的值就等于dt.Rows.Count
,这可能是错误的原因。但是,我不清楚i
如何假定这个值,因为我正在从dt.Rows.Count
-1
你知道我做错了什么吗?问题是你正在删除行,而你正在继续使用bucle:
For i As Integer = dt.Rows.Count -1 To 0 Step -1
For Each num As Integer In numsArray
If dt.Rows(i).Item("number") = num Then
dt.Rows(i).Delete()
Exit For ' You need to stop looking for a number in this row
End If
Next
Next
您正在迭代要从中删除的行集合;这就像锯断你站着的梯子 请尝试以下代码:
For Each num As Integer In numsArray
For i As Integer = dt.Rows.Count -1 To 0 Step -1
If dt.Rows(i).Item("number") = num Then
dt.Rows(i).Delete()
Exit For
End If
Next
Next
非常感谢,你一针见血
For Each num As Integer In numsArray
For i As Integer = dt.Rows.Count -1 To 0 Step -1
If dt.Rows(i).Item("number") = num Then
dt.Rows(i).Delete()
Exit For
End If
Next
Next