【发布时间】:2018-02-04 12:09:47
【问题描述】:
我正在开发一个 Vb.net 桌面应用程序登录页面,我在 MS Access 中创建了数据库,当我在数据网格视图中显示数据时,它显示了我保存在 DIV 的数据库表中的数据。
任何建议...
我的代码是:
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|hrm.accdb")
Dim cmd As OleDbCommand = New OleDbCommand(
"SELECT * FROM admin WHERE username = '" & txt_user.Text & "' AND password = '" & txt_pass.Text & "' ", conn)
conn.Open()
Dim sdr As OleDbDataReader = cmd.ExecuteReader()
' If the record can be queried, it means passing verification, then open another form.
If (sdr.Read() = True) Then
Dim hrmAdminPanel As New hrmAdminPanel
hrmAdminPanel.Show()
Me.Hide()
Else
MessageBox.Show("Invalid name or password!")
End If
End Sub
【问题讨论】:
-
永远不要连接字符串来生成 SQL,也永远不要将密码存储为纯文本。
hrmAdminPanel是什么?阅读器中的数据如何进入 DGV?显示的代码似乎与问题无关 -
而 password 是 Access SQL 中的保留字,因此:
".. AND [password] = '" ..". -
@Plutonix hrmAdminPanel 是我想在用户名和密码验证后加载的表单。它是一个登录页面,用户输入用户名和密码,验证后进入管理面板。该管理面板名称是 hrmAdminPanel。
-
@Gustav 你的意思是我应该更改密码输入字段的名称?
-
不,这取决于你,但如果不是,如图所示,需要括号。
标签: vb.net winforms ms-access desktop-application