基本上我有一个登录系统,想要添加访问权限。为了做到这一点,我希望我的代码引用我的SQL数据库,返回访问的值,然后返回一个if语句,然后根据用户的访问权限引导用户。我认为问题出在何时:如果access =“Admin”,我现在得到的就是错误信息。我无法找到如何在SQL表中将Admin引用到Admin。
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
'connection to the database
Dim connection As New SqlClient.SqlConnection
Dim command As New SqlClient.SqlCommand
Dim adaptor As New SqlClient.SqlDataAdapter
Dim dataset As New DataSet
Dim access As String
'data location
connection.ConnectionString = ("Data Source=CHRISTIAN;Initial Catalog=Complete;Integrated Security=True")
'sql statement
command.CommandText = "SELECT Access_Level FROM [User] WHERE Username= '" & txtUsername.Text & "'AND Password='" & txtPassword.Text & ";'"
connection.Open()
command.Connection = connection
adaptor.SelectCommand = command
adaptor.Fill(dataset, "0")
access = CType(command.ExecuteScalar(), String)
Try
If access = "Admin" Then
MenuAdmin.Show()
Me.Hide()
ElseIf access = "User" Then
Menu1.Show()
Me.Hide()
Else
MsgBox("Please try again, wrong username or password entered!")
txtPassword.Clear()
txtUsername.Clear()
'txtUsername.Focus()
End If
Catch ex As Exception
End Try
感谢您的帮助
答案 0 :(得分:0)
如果只是连接数据库以检索名为“access”的列的值,则需要查看ADO.NET。它是一个相当大的主题,但如果你有一个快速的谷歌,会有很多例子。
答案 1 :(得分:0)
如果您不打算对表执行任何其他操作,则仅使用数据集来返回此字段似乎是不必要的。尝试像
这样的东西SqlDataReader reader=command.ExecuteReader();
string access="";
if(reader.HasRows){
reader.Read();
access=reader.IsDBNull(0) ? "" : reader.GetString(0);
}
else{
//Handle unauthorised access
}
reader.Close();
reader.Dispose();