如何检查DataGridview中的列中是否有任何重复值?

时间:2013-12-27 11:23:37

标签: c# .net vb.net datagridview

我有一个DataGridView,在保存数据之前,我想检查特定列是否在任何行中有任何重复值。

 If DataGridView1.Rows.Count > 2 Then
            Dim count As Integer = 0
            Dim i As Integer = 0
            While DataGridView1.Rows.Count - 1

                Dim j As Integer = 1


                While DataGridView1.Rows.Count - 1

                    Dim str As String = DataGridView1.Rows(i).Cells("ColLedger").Value()
                    Dim str1 As String = DataGridView1.Rows(j).Cells("ColLedger").Value()


                    If str1 = str Then
                        count = count + 1
                    End If

                    j += 1



                End While
                i += 1
            End While


            If count > 0 Then
                MsgBox(count)
            End If

我的索引超出范围错误。我不确定我做错了什么。

如果可以使用在线工具轻松转换,我也会接受c#的答案。

1 个答案:

答案 0 :(得分:1)

这应该有效。我认为你的错误在于While DataGridView1.Rows.Count - 1行,这是没有意义的。没有Option Explicit没有错,因为框架可以将整数与布尔值进行比较(True = 1,False = 0),但这不是你想要的。我总是建议启用Option Explicit,方法是将其添加到代码中,或者只是在编译设置中打开它。

Dim Count as integer = 0
For i = 0 To dgv.RowCount - 2
  For a = i + 1 To dgv.RowCount - 1
     if dgv.Rows(i).Cells("ColLedger").Value = dgv.Rows(a).Cells("ColLedger").Value Then Count += 1
  Next
Next
MsgBox(Count.ToString)