1

我有一个“table_info”表,在添加新 ID、名称时有一列 ID、NAME。我想检查它是否已经存在。如果存在,则生成一个 MessageBox。

如何才能做到这一点

4

2 回答 2

1

实现这一目标的方法不止一种。如果您没有太多行,您可以检查数据源/集或实际的 datagridview 本身。如果是后者,那么您可以这样做:

如果满足条件,检查函数返回 true:

    Function IsInDatagridview(ByVal cell1 As String, ByVal cell2 As String, ByVal rowCell1_ID As Integer, ByVal rowCell2_ID As Integer, ByRef dgv As DataGridView)

    Dim isFound As Boolean = False

    For Each rw As DataGridViewRow In dgv.Rows
        If rw.Cells(rowCell1_ID ).Value.ToString = cell1 Then
            If rw.Cells(rowCell2_ID ).Value.ToString = cell2 Then

                isFound = True
                Return isFound


            End If
        End If
    Next

    Return isFound

End Function

.

然后在满足条件时使用 Function 显示 MessageBox:

    If (IsInDatagridview("id", "name", 0, 1, DataGridView1)) Then

        ''// Code to display message.
        MsgBox("Record Exists!", MsgBoxStyle.Information)

    End If

您可能需要将 ID 更改为整数,但我认为它应该可以工作。没有测试过。

好的,这将做的是遍历您指定的datagridview中的每一行'rw',检查单元格列的字符串匹配',如果找到匹配'isFound'设置为true,则返回'isFound'。

于 2013-04-11T13:48:46.623 回答
1

Ypu 必须将 userowCell_ID作为字符串引用,因为它是 datagridivew 中的列名:

Function IsInDatagridview(ByVal cell1 As String, ByVal cell2 As String, ByVal rowCell1_ID As Integer, ByVal rowCell2_ID As Integer, ByRef dgv As DataGridView)

    Dim isFound As Boolean = False

    For Each rw As DataGridViewRow In dgv.Rows
        If rw.Cells("rowCell1_ID" ).Value.ToString = cell1 Then
            If rw.Cells("rowCell2_ID" ).Value.ToString = cell2 Then

                isFound = True
                Return isFound


            End If
        End If
    Next

    Return isFound

End Function
于 2016-06-26T09:52:49.603 回答