database - 为什么vb停止执行一些代码并跳过它
问题描述
我在 vb.net 上创建了一个登录表单并将其连接到 ms access 数据库。连接成功,但是当我尝试使用在 ms access 上创建的 id 和密码登录时,它失败了。我已经用 step into 来测试它,所以我可以知道它为什么会出错。
我正在使用 Visual Studio 2010 和 MS Access 2013。
这是我的登录表单代码:
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ok.Click
Try
userss = user.Text
Query = "Select * FROM user WHERE users = '" & userss & "' AND password = '" & pass.Text & "'"
daData = New OleDbDataAdapter(Query, conn)
dsData = New DataSet
daData.Fill(dsData) '**LAST EXECUTE CODE**
If dsData.Tables(0).Rows.Count = 0 Then '**VB DONT EXECUTE**
If mCount < 3 Then
MsgBox("Wrong Username or Password", MsgBoxStyle.Critical + MsgBoxStyle.OkCancel, "Message")
user.Focus()
mCount = mCount + 1
Me.pass.Text = ""
Else
MsgBox("Login Failed", MsgBoxStyle.Critical + MsgBoxStyle.OkCancel, "Message")
End
End If
Else
If (dsData.Tables(0).Rows(0).Item(4) = 1) Then
dsData.Dispose()
dsData.Reset()
daData.Dispose()
Me.Hide()
Main.Show()
Else
MsgBox("Login Failed", MsgBoxStyle.Critical + MsgBoxStyle.OkCancel, "Message")
End If
End If
Catch ex As Exception
MsgBox("Database Connection Failed!", MsgBoxStyle.Critical + MsgBoxStyle.OkCancel, "Message") '**AND DIRECTLY EXECUTE HERE**
End Try
End Sub
解决方案
密码是保留字,所以需要括号:
Query = "Select * FROM user WHERE users = '" & userss & "' AND [password] = '" & pass.Text & "'"
旁注:您对用户的单数和复数的使用非常令人困惑。
推荐阅读
- php - 通过表单 php 邮件发送图像
- python - Python 字符串迭代:如何先打印任何非元音字符,然后打印元音(通过 For 循环)
- python - Python BeautifulSoup - 获取数据标签
- javascript - React useEffect清理功能多次运行?
- python - 如何使用 virtualenv 在 VS Code 中调试 python?再次
- rust - 如何使用 Rust 与 Actix Web 和 WebSockets 发送服务器事件?
- android - 如何在android中以编程方式关闭Android手机
- python-3.x - Python-通过分隔符将一列中的字符串拆分为多列
- javascript - 为什么过渡不适用于第一次点击事件?
- angular - Angular 表单验证失败,导致一些问题?