如何比较不同datagridview中第0列中的数据

时间:2018-01-15 17:15:05

标签: vb.net datagridview

编辑: Datagridview example 我想这样做,但问题是我不知道怎么做。

这是应该的样子。在数据网格视图1的每一行中,我将在数据网格视图2中搜索值,如果有相同的值,我将在另一列中保存新值,如果没有找到我将保存新的。如果在数据网格视图2中有数据,但在数据网格视图中1我将不会丢失。

这是我的代码

 For Each dgv1 As DataGridViewRow In DataGridView1.Rows
        For dgva As Integer = 0 To DataGridView2.Rows.Count - 1
            For dgvb As Integer = dgva + 1 To DataGridView2.Rows.Count - 1
                If (dgv1.Cells(0).Value = DataGridView2.Rows(dgvb).Cells(0).Value) Then
                    MsgBox(dgv1.Cells(0).Value & "," & DataGridView2.Rows(dgvb).Cells(0).Value)
                Else
                    MsgBox(dgv1.Cells(0).Value & "," & DataGridView2.Rows(dgvb).Cells(0).Value)

                End If
            Next
        Next
    Next

1 个答案:

答案 0 :(得分:0)

由于您需要遍历每一行,因此请使用For / Each循环。

在循环中,你应该使用条件If / Then语句检查两件事:

  1. 当前迭代的行不是空白行
  2. 当前迭代的值是否包含在DataGridView2中的任何行
  3. 如果满足这两个条件,那么你会做一些事情(虽然我不确定你想做什么,但我认为可能存在语言障碍)。

    这是一个简单的例子:

    For Each row As DataGridViewRow In DataGridView1.Rows.Cast(Of DataGridViewRow)
        If Not row.IsNewRow AndAlso DataGridView2.Rows.Cast(Of DataGridViewRow).Any(Function(r) r.Cells(0).Value.Equals(row.Cells(0).Value)) Then
            'Do something...
        End If
    Next
    

    编辑 - 我忘了提到我假设您想要比较的值位于第一列。如果不是这种情况,那么您需要将.Cells(0)更改为所需的列索引。