Visual Basic - 验证arraylist是否包含值

时间:2014-11-02 07:59:07

标签: vb.net visual-studio vba

我在使用一段代码时遇到了一些麻烦,我正在尝试将一个项目添加到我成功完成的dataTable中,但我注意到如果我尝试添加相同的元素,系统会让我,我自然而然地开始创建某种验证,以避免添加具有表格中已有ID的项目。

老实说,我没有看到我的代码存在问题,但我再次对此有点新意见。我试图做的是一个for循环,它使用当前项的ID填充arrayList,然后检查列表中是否已存在该ID(从组合框cmbRol中获取),以避免重复。

任何见解或提示都会非常有帮助。

这是我的代码。

Private Sub onAsignar(sender As Object, e As EventArgs) Handles btnAsignar.Click

    Dim rol As Integer = cmbRol.SelectedValue
    Dim lstActual As New ArrayList
    Dim rw As Integer

    For Each row As DataGridViewRow In gridListaDatos.Rows

        lstActual.Add(gridListaDatos.Item(0, rw).Value)

    Next

    If (lstActual.Contains(rol)) Then

        MessageBox.Show("This ID already exists in the table", "Asignar Rol", MessageBoxButtons.OK)

    Else

        gestorRol.asignarRolUsuario(rol, idUsuario)
        ActualizarTabla()

    End If

  End Sub

End Class

1 个答案:

答案 0 :(得分:0)

好的,我修复了这个......出于某种原因(可能是晚了)我假设rw变量会自动增加,当然不是这样。

正确的解决方案是:

Private Sub onAsignar(发件人作为对象,e作为EventArgs)处理btnAsignar.Click

Dim rol As Integer = cmbRol.SelectedValue
Dim lstActual As New ArrayList
Dim rw As Integer = 0

For Each index As DataGridViewRow In gridListaDatos.Rows

    lstActual.Add(gridListaDatos.Item(0, rw).Value)
    MessageBox.Show(gridListaDatos.Item(0, rw).Value, "ID", MessageBoxButtons.OK)

    rw = rw + 1

Next

If (lstActual.Contains(rol)) Then

    MessageBox.Show("Este rol ya pertenece a este usuario", "Asignar Rol", MessageBoxButtons.OK)

Else

    gestorRol.asignarRolUsuario(rol, idUsuario)
    ActualizarTabla()

    End If

End Sub
相关问题