我想删除DataGridView中的重复值和空白行。 我正在使用以下代码。
Private Sub dgwsil()
On Error Resume Next
For i2 As Integer = DataGridView1.RowCount - 1 To 0 Step -1
If Trim(DataGridView1.Rows(i2).Cells(0).Value.ToString()) = "" Then
DataGridView1.Rows.RemoveAt(i2)
End If
Next
Dim numberOfRows = DataGridView1.Rows.Count
Dim i As Integer = 0
While i < numberOfRows - 2
For ii As Integer = (numberOfRows - 1) To (i + 1) Step -1
If DataGridView1.Rows(i).Cells(0).Value.ToString() = DataGridView1.Rows(ii).Cells(0).Value.ToString() Then
DataGridView1.Rows.Remove(DataGridView1.Rows(ii))
numberOfRows -= 1
End If
Next
i += 1
End While
End Sub
代码有时可以正常工作。
但有时会出错
我该如何解决这个问题?或者您使用的代码是什么?
答案 0 :(得分:0)
看起来你正在用VBA心态来解决这个问题。在VBA中,您通常会直接操纵datagridview
,On Error Resume Next
行可以接受。
在VB.NET中,你不想做其中任何一件事。您的datagridview
应绑定到一组信息。该集合可以是datatable
或array
或任何类型的集合。因此,不是使用循环来直接操作datagridview
,而是循环通过支持集合,或者更好地LINQ
通过集合并根据需要对其进行操作。有大量的教程解释了你可能需要的一切,所以谷歌搜索如何绑定datatable
到datagridview
应该得到你需要的。
我还建议调查Try...Catch...Finally...
结构。您应该使用它来处理可能来自您的代码的任何错误。