Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
ログインフォーム
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30326#CommentId83272
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ど素人
 (社会人)
投稿日時
2018/5/24 17:10:54
魔界の仮面弁士さま
>なのでこの場合、「If Password.Text = Pass Then」の判定処理を末尾に置くのではなく、
>それを If rd.Read() Then のブロック内に移動させてしまえば良いと思います。
修正しました
If rd.Read() Then
Pass = rd.GetString("Password")
Flag = rd.GetString("権限")
If Password.Text = Pass Then
MessageBox.Show("ユーザー名とパスワードを受け付けました。")
Me.Close()
Else
MessageBox.Show("認証できません。")
Id.Clear()
Password.Clear()
Username.Focus()
End If
Else
'該当者がいない場合の処理
End If
>ついでに、「該当する Id が無い」状態と、「Id は正しいがパスワードが間違っている」状態を区別するか同一視するかも、アプリケーション設計時点で決めておきましょう。
そこまで考えが回っていませんでした。勉強になります。
>何故、Integer 型の変数に、String 型の値を代入しようとしているのでしょうか。
>そもそも、データベース側の [権限]フィールドのデータ型は何になっていて、
>そこには何という値が入っているのでしょうか。
すみませんいじっていた際ミスしたものでした。
Dim Flag As String = "0"
Flag = rd.GetString("権限")
となっています。
投稿したものだと確かにおかしいのはわかるんですが、その前にPass = rd.GetString("Password")の部分で前のエラーが出ているのです。
Passwaod、権限どちらもvarchar(50)です。
値は現状Password{a、b}、権限{0、1}です。