電子メールとパスワードのユーザー入力がデータベースと一致するかどうかを確認する必要があるログインフォームがあります。VB.net SqlDataReader GetString関数にnull値がある場合のmessageboxの表示方法?
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