簡體   English   中英

如何從Visual Basic中的SQL表中獲取字符串值

[英]How to get a string value from a sql table in visual basic

基本上,我有一個登錄系統,想添加訪問權限。 為了做到這一點,我希望我的代碼引用我的SQL數據庫,返回access的值,然后返回一個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

謝謝你的幫助

如果僅是連接到數據庫以檢索稱為“訪問”的列的值的情況,則需要查看ADO.NET。 這是一個相當大的主題,但是如果您有一個快速的Google,將會有很多例子。

基本的Microsoft ADO.Net示例

如果您不打算對該表進行任何其他操作,則僅使用數據集來返回該字段似乎沒有必要。 嘗試類似

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM