如何从visual basic中的sql表中获取字符串值

时间:2015-03-24 11:47:24

标签: sql sql-server visual-studio-2012 login

基本上我有一个登录系统,想要添加访问权限。为了做到这一点,我希望我的代码引用我的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

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

如果只是连接数据库以检索名为“access”的列的值,则需要查看ADO.NET。它是一个相当大的主题,但如果你有一个快速的谷歌,会有很多例子。

Basic Microsoft ADO.Net example

答案 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();