我有一個登錄表單,我需要檢查我的數據庫電子郵件和密碼的用戶輸入是否與數據庫匹配。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