Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 错误:索引超出范围。必须为非负数且小于集合的大小。参数名称:索引_Database_Vb.net_Validation - Fatal编程技术网

Database 错误:索引超出范围。必须为非负数且小于集合的大小。参数名称:索引

Database 错误:索引超出范围。必须为非负数且小于集合的大小。参数名称:索引,database,vb.net,validation,Database,Vb.net,Validation,这是我一直在做的代码,但有一个错误不断弹出。我知道它已经被回答了,但这不是我一直在寻找的。如果txtidname已经存在,这就像一个验证。在这里输入code希望有人能帮助我…祝你有一个愉快的一天!:) 代码: Private Sub TxtIDNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtIDNum.TextChanged If TxtIDNum.Text

这是我一直在做的代码,但有一个错误不断弹出。我知道它已经被回答了,但这不是我一直在寻找的。如果txtidname已经存在,这就像一个验证。
在这里输入code
希望有人能帮助我…祝你有一个愉快的一天!:)

代码:

Private Sub TxtIDNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtIDNum.TextChanged
    If TxtIDNum.Text = DataGridView1.SelectedCells(0).Value.ToString Then
        MsgBox("The ID Number you input has already existed!Try again...")
        TxtIDNum.Clear()
    End If
End Sub
下面是错误: 错误: ArgumentOutofRangeException未处理

索引超出范围。必须为非负数且小于集合的大小。
参数名称:index

通过引用SelectedCells(0),您所依赖的DataGridView中至少有一个“Selected”单元格

0是异常所引用的索引

如果未选择任何单元格,SelectedCells集合的大小将为-1,并且将引发此异常

要检查DataGridView中所有行的(第一个单元格),无论是否选中,都需要以下内容:

For Each row As DataGridViewRow In DataGridView1.Rows
    If row.Cells(0).Value.ToString().Contains(TxtIDNum.Text) Then
        MsgBox("The ID Number you entered already exists! Try again...")
        TxtIDNum.Clear()
        Exit For     
    End if
Next

你好我尝试了您给我的代码,但它再次出错..If ROW.Cells(0).Value.ToString()中的行包含(TxtIDNum.Text)。它说“行”没有声明。由于其保护,它可能无法访问。对于上面的每一行,行在中声明为DataGridViewRow。我已经将上面的代码放在一个示例项目中,它正在工作。我将代码移动到文本框的Leave事件中,这样它只在文本框失去焦点时执行一次,而不是每次更改(每次按键)。我使用DataGridView1,我应该使用它吗?那么,我应该把代码移到哪里?谢谢你的帮助,但我认为这里的问题是我无法连接这两个表单,例如form1和form2。它们应该连接到,如果我在form2中更改某些内容,它也会在form1中更改并反转。上面的代码使用DataGridView1作为DataGridView控件的名称。DataGridViewRow是DataGridView中的一种类型。以上内容将解决ArgumentOutOfRange异常。您可能需要询问另一个有关连接表单的问题。基本上,如果要通过代码添加DataGridView控件,则需要将其声明为public,或者在设计器中将其Modifiers属性设置为public。然后,您可以使用form1.DataGridView1等从form2访问它。感谢您的回复,它确实帮助了我,但我不再做那些代码。太多了,我的大脑哈哈哈…我将把它作为未来的指南。谢谢:)