我的目标是根据用户输入找到主键。
表格内容如下:UserID,account,password。
userID设置为主键和整数类型。
帐户设置为varchar类型。
密码设置为varchar类型。
这是我目前验证用户输入的代码。
Dim account As String = txtAcc.Text
Dim password As String = txtPss.Text
For Each Me.dr In atadap.GetData
If dr.Item(1) = account And dr.Item(2) = password Then
**[retrieve userID for specified data row]**
MsgBox("Access granted!")
Me.Hide()
frmMenu.Show()
Exit For
Else
MsgBox("Access denied!")
txtAcc.Text = ""
txtPss.Text = ""
Exit For
End If
Next
以下是我在研究中使用的链接: http://msdn.microsoft.com/en-us/library/y06xa2h1.aspx
但仍然无法弄清楚如何去做。任何帮助将非常感激。非常感谢提前。
答案 0 :(得分:0)
确实
userId = dr.Item(0)
返回ID?
答案 1 :(得分:0)
您退出第一个数据行上的For each
循环,这就是为什么除非记录位于数据表的顶部,否则永远不会找到结果。
我不知道为什么你需要读取每一行来检查特定的行。但是,如果这是您的要求,请将您的代码更改为:
Dim account As String = txtAcc.Text
Dim password As String = txtPss.Text
Dim userFound as Boolean = False
Dim userId as Integer
For Each Me.dr In atadap.GetData
If dr.Item(1) = account And dr.Item(2) = password Then
userId = dr.Item(0) ' save the userId in a variable
userFound = True
Exit For
End If
Next
If userFound then
MsgBox("Access granted! Your User ID is " & userId)
Me.Hide()
frmMenu.Show()
Else
MsgBox("Access denied!")
txtAcc.Text = ""
txtPss.Text = ""
End If