我有一个登录表单,我需要检查我的数据库电子邮件和密码的用户输入是否与数据库匹配。VB.net SqlDataReader如何显示messagebox如果GetString函数有空值?
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
myConn = New SqlConnection(My.Settings.MySQLData)
myCmd = myConn.CreateCommand
myCmd.CommandText = "SELECT Email FROM dbo.[User]" &
" WHERE Email = '" & tbEmail.Text & "'"
myConn.Open()
myReader = myCmd.ExecuteReader
myReader.Read()
If myReader.IsDBNull(0) Then
MessageBox.Show("The email address input is invalid or does not exist in database.")
ElseIf myReader.GetString(0) <> tbEmail.Text Then
MessageBox.Show("The email address input is invalid or does not exist in database.")
Else
MessageBox.Show("Email address is OK")
End If
myReader.Close()
myConn.Close()
这只是电子邮件部分。我也有一个密码部分,我还没有投入。
我上面的代码不起作用。检查数据库登录的最佳方法是什么?
定义“不起作用”。它以什么特定的方式失败?另请注意,您的代码已广泛应用于SQL注入。您应该使用查询参数,而不是直接执行用户输入作为代码。 – David
当数据不存在时无效尝试读取。 – iamhx