在连接到Oracle数据库的VB.Net的登录表单中。是否有一种方法可以插入一个If语句来将不同的用户引导到不同的表单。例如,会计主页的会计或者驱动程序驱动程序主页即使所有ID和密码都在数据库的一个表中。
数据库中有一个POSITION字段,我希望用它来区分不同用户的访问级别。
这是迄今为止的代码:
Dim conn As New OleDb.OleDbConnection
conn.ConnectionString = _
"Provider=msdaora;Data Source=orabis;User Id=112221800;Password=112221800;"
conn.Open()
Dim parmuser As New OleDb.OleDbParameter
parmuser.OleDbType = OleDb.OleDbType.Char
parmuser.Value = txtStaffNo.Text
Dim parmpass As New OleDb.OleDbParameter
parmpass.OleDbType = OleDb.OleDbType.Char
parmpass.Value = txtPassword.Text
Dim cmd As New OleDbCommand
cmd.Connection = conn
cmd = New OleDbCommand("select STAFFID,PASSWORD from STAFF where STAFFID ='" & txtStaffNo.Text & "' and PASSWORD ='" & txtPassword.Text & "'", conn)
cmd.CommandType = CommandType.Text
Dim dr As OleDb.OleDbDataReader
dr = cmd.ExecuteReader()
If txtStaffNo.Text = "" Or txtPassword.Text = "" Then
MessageBox.Show("You have not entered any values!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf dr.Read() Then
txtStaffNo.Text = dr("STAFFID")
txtPassword.Text = dr("PASSWORD")
MsgBox("Access Allowed")
CustOption.Show()
Me.Hide()
Else
'MessageBox.Show("Wrong Username and Password", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
'intCount = intCount + 1
End If
答案 0 :(得分:0)
对于网站/应用程序
switch (position){
case "Admin":
Server.Transfer("AdminHomePage.aspx";
brea;
case "blabla":
//and so on
default:
Server.Transfer("Home.aspx"
}
对于Windows窗体,答案是类似的。但你有选择的形式。
即new FormAdminHome().ShowDialog()
答案 1 :(得分:0)
我认为你回答了自己的问题。只需将POSITION添加到您的查询中,然后只需说出:
If dr("POSITION")="JANITOR" Then
//Go to janitor site
ElseIf ...
...
End If
就像其他人所说的那样,你真的不应该像这样传递密码。您是否还有退回密码的原因?如果查询甚至返回用户“已验证”的任何内容,那么为什么要返回呢?