如何在datagridview中检查文本值

时间:2019-05-03 19:12:01

标签: vb.net

我正在使用Visual Basic制作一个登录屏幕,这将需要许多用户登录。我有一个填充了所有用户的Azure数据库。我需要在datagridview / database中检查他们将在文本框中输入的用户名。

我尝试了几种循环变化以及if语句引用了数据库中的username列。这些通常是For循环,应该使循环继续遍历该列而没有问题。

      For i As Integer = 0 To dgvUsers.Rows.Count
        If dgvUsers.Rows(i).Cells(2).Value.ToString() = strUsername Then
              frmNavPane.Show()
              Me.Close()

        End If
    Next

应该发生的是用户应该能够输入其用户名,并且应该在数据库中对其进行检查。如果存在并且拼写正确等,它将使用户登录到下一个表单。

当前它什么都不做。在输入字符串不正确之前,我遇到了错误,直到在.Value的末尾添加.ToString()为止。现在,即使我单击登录按钮,程序也不会继续执行或出错。

1 个答案:

答案 0 :(得分:0)

就像Çöđěxěŕ所说,此检查应通过查询在数据库表上进行。除非您需要有关存储在数据库中的用户的更多信息,否则标量返回就足够了。您也可以使用Environment中的用户名进行比较。

    Using SqlConn As New SqlClient.SqlConnection("Con string")
        Using CheckUserCmd As New SqlClient.SqlCommand("SELECT COUNT(*) FROM Table Where UserName=@UserName", SqlConn)
            CheckUserCmd.Parameters.Add("@UserName", SqlDbType.VarChar).Value = Environment.UserName
            Dim UserInt As Integer = CheckUserCmd.ExecuteScalar
            If UserInt > 0 Then
                'UserExists
            Else
                'UserDoesntExist
            End If
        End Using
    End Using