Vb.net datagridview值已存在

Vb.net datagridview值已存在,vb.net,datagridview,Vb.net,Datagridview,这是我的代码,用于检查dgvorders中是否已经存在值(来自dgvlist),我的问题是错误消息仅显示在dgvlist的第一个selectedrow中,其余的仍然添加 For Each row As DataGridViewRow In dgvOrders.Rows For i = 0 To dgvOrders.Rows.Count - 1 If row.Cells(0).Value = dgvList.SelectedRows(i).Cells(0).

这是我的代码,用于检查dgvorders中是否已经存在值(来自dgvlist),我的问题是错误消息仅显示在dgvlist的第一个selectedrow中,其余的仍然添加

For Each row As DataGridViewRow In dgvOrders.Rows
        For i = 0 To dgvOrders.Rows.Count - 1
            If row.Cells(0).Value = dgvList.SelectedRows(i).Cells(0).Value Then
                MsgBox("item already listed!", MsgBoxStyle.Critical)
            Else : dgvOrders.Rows.Add(v, w, x, y, z)

            End If
            Exit Sub
            Exit For
        Next 
    Next

因为在If语句之后,您使用的是End sub,所以一旦第一条记录被比较,它就会从整个sub中出来。

我建议您依次关注每一项。您只需要为每个。。。下一步循环(除非您还想遍历列)

接下来,将要测试的值放入变量
ValueFromdgvList
。应将其声明为数字或字符串,以匹配预期值。我不知道下面的代码中是否有正确的语法或值。您应该在代码中放置一个断点并逐步执行,以便在开始比较之前检查是否具有预期值

最后,要添加行,需要将值设置为数组。最好是定义一个新的DataGridViewRow并将值添加到其中。最后将其添加到DataGridView。但我不说了

    'change this as needed
    Dim ValueFromdgvList As String = dgvList.SelectedRows(0).Cells(0).Value
    Debug.Print(ValueFromdgvList)

    Dim haveMatch As Boolean
    For Each row As DataGridViewRow In dgvOrders.Rows
        If row.Cells(0).Value = ValueFromdgvList Then
            haveMatch = True
            Exit For
        End If
    Next

    If haveMatch Then
        MsgBox("item already listed!", MsgBoxStyle.Critical)
    Else
        Dim ValuesArray() As Object = {v, w, x, y, z}
        dgvOrders.Rows.Add(ValuesArray)
    End If

我们使用的是
haveMatch
,因为在检查所有行之前,我们不想添加新行。

我不完全清楚您在做什么,但我非常确定您不想在dgvOrders循环中嵌套dgvOrders循环。您正在该网格(行数)上循环平方次。您的代码没有1个问题,但有相当多的问题。我严重怀疑,任何人哪怕做一点点努力也能交付10行VB.NET代码,其中包含这么多错误。@varocarbas如果你不能帮忙,那么就忽略我的帖子,不要评论。我不熟悉这件事,这就是我寻求帮助的原因。我在帮助你理解你不应该做你正在做的事情。首先,这不是学习的方式;其次,这不是使用SO的方式。帮助别人并不一定意味着给他们想要的,而是他们需要的。。。这并不是为了基础学习,而是为了解决知识渊博的程序员的非常具体的问题。对于学习,您有其他网站和备选方案(尽管我建议您自己做大部分工作)。让我换一种说法:你会去一个专家数学家的网站询问“+”是什么意思吗?在那种情况下,那里的人会回答你什么?你基本上也是这样做的,但是没有提供所需的信息(例如,去上面提到的网站,但只是说它是一个“奇怪的符号”)。我尝试删除退出子项,但结果是另一个错误抱歉,没有错误,但当我删除退出时,它没有添加任何内容,只是数据网格滚动变小了。对不起,我的语法有空行添加吗?运行时使用插入断点功能。看看到底发生了什么。不,当我选择一个空行时,它会得到最后一行的值。谢谢你的回答,先生,但我已经发现了错误。这是出口接头。因此,如果出口接头是问题所在,您应该通过单击左侧的复选标记来接受Bharath R的答案。或者如果这个答案更好,你应该接受这个。你也可以选择其中一个或两个答案。