Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我的登录表单显示OLE DB查询不工作_Vb.net_Ms Access - Fatal编程技术网

Vb.net 我的登录表单显示OLE DB查询不工作

Vb.net 我的登录表单显示OLE DB查询不工作,vb.net,ms-access,Vb.net,Ms Access,我需要做的vb登录形式使用基于角色的MS访问。mdb文件 但我得到了错误无效的查询请解决 Public Class login_module 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\gasdb1.mdb Dim loginerror As String Dim ab As Integer Public Function logins() Dim DBConn As

我需要做的vb登录形式使用基于角色的MS访问。mdb文件 但我得到了错误无效的查询请解决

Public Class login_module
    'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\gasdb1.mdb
    Dim loginerror As String
    Dim ab As Integer
    Public Function logins()
        Dim DBConn As New ADODB.Connection
        Dim user As New ADODB.Recordset
        Dim Usernam As String
        Dim UserDB As String
        Dim passDB As String
        Dim roleDB As String
        Dim userfound As Boolean
        Try 
            DBConn.Open("Provider = Microsoft.Jet.OLEDB.4.0;Data Source ='" & "E:\crime\crime.mdb'")

            user.Open("user", DBConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
            Me.Hide()
        End Try

        userfound = False
        logins = False
        Usernam = "username ='" & TextBox1.Text & "'"
        Do
            Try
                user.Find(Usernam)
            Catch ex As Exception
                MsgBox(ex.Message)

            End Try


            Debug.Print(user.ToString)

所以,也请解决我得到的错误操作是不允许的对象关闭时。adodb.recordset.

如果要使用VB.NET,则应使用它,其中包括使用ADO.NET进行数据访问。
Public Class login_module

    Private ConStr As String = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =E:\crime\crime.mdb"
    Private Function Logins(Name As String, PWord As String) As String
        Dim RetVal As Object = Nothing
        Dim Role As String
        Dim sql = "Select Role From Users Where UserName = @Name And Password = @Password;"
        Using cmd As New OleDbCommand(sql, New OleDbConnection(ConStr))
            cmd.Parameters.Add("@Name", OleDbType.VarWChar).Value = Name
            cmd.Parameters.Add("@Password", OleDbType.VarWChar).Value = PWord
            cmd.Connection.Open()
            RetVal = cmd.ExecuteScalar
        End Using
        If RetVal Is Nothing Then
            Role = "Not Found"
        Else
            Role = RetVal.ToString
        End If
        Return Role
    End Function

    Private Sub btnLogIn_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
        Dim Role As String = ""
        Try
            Role = Logins(txtUserName.Text, txtPassword.Text)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Exit Sub
        End Try
        Select Case Role
            Case "Admin"
                'Do something
            Case "Supervisor"
                'Do something
            Case "Clerk"
                'Do Something
            Case Else
                MessageBox.Show("No defined Role was returned.")
        End Select
    End Sub
End Class