Visual studio 2010 有人能指出我在VB(visual studio 2010,mdb)中登录表单的错误吗

Visual studio 2010 有人能指出我在VB(visual studio 2010,mdb)中登录表单的错误吗,visual-studio-2010,login,ms-access-2007,oledb,Visual Studio 2010,Login,Ms Access 2007,Oledb,我不知道为什么或在哪里的问题,因为我已经能够登录使用此代码了 所以在这里,我只是想创建一个登录表单,我打算稍后对密码进行加密,但现在我似乎无法连接到我的ms2003-2007mdb文件,它总是显示我的mssge无法连接,我不久前使用了相同的代码,当尝试组合我的密码加密时,它失控了,既然我恢复了我原来的登录表单,它就不起作用了 这就是我所拥有的 导入System.Data.OleDb 公共类FormLogin Public Sub login() Dim con As New OleDb.

我不知道为什么或在哪里的问题,因为我已经能够登录使用此代码了

所以在这里,我只是想创建一个登录表单,我打算稍后对密码进行加密,但现在我似乎无法连接到我的ms2003-2007mdb文件,它总是显示我的mssge无法连接,我不久前使用了相同的代码,当尝试组合我的密码加密时,它失控了,既然我恢复了我原来的登录表单,它就不起作用了 这就是我所拥有的

导入System.Data.OleDb

公共类FormLogin

Public Sub login()
    Dim con As New OleDb.OleDbConnection
    con.ConnectionString = "PROVIDER = Microsoft.JET.OLEDB.4.0; Data Source = ..\debug\admin.mdb"
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT uname, pword FROM users where username=admin", con)
    Dim uname As String = uname_txtfield.Text
    Dim pword As String = pword_txtfield.Text
    cmd.Parameters.AddWithValue("uname", uname)
    cmd.Parameters.AddWithValue("pword", pword)
    Try
        con.Open()
        Dim read As OleDbDataReader = cmd.ExecuteReader
        If read.HasRows Then
            read.Read()
            If uname = read.Item("uname").ToString And pword = read.Item("pword") Then
                FormChckin.Show()
                Me.Hide()
            ElseIf uname = "Admin" And String.IsNullOrEmpty(pword) Then
                Uinfo_lbl.Text = "The Default Username is Admin, password is password"
            ElseIf String.IsNullOrEmpty(uname) Or String.IsNullOrEmpty(pword) Then
                MsgBox("Enter Username & Password, then try again")
            Else
                MsgBox("Username and password does not match")
            End If
        Else
            MsgBox("Unable to login")
        End If
        read.Close()
    Catch ex As Exception
        MsgBox(ex.ToString)
    Finally
        con.Close()
    End Try
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Login_btn.Click
    login()
End Sub

结束类

您是否尝试删除此代码?如果您正在访问本地数据库文件,我认为您不需要这个,除非您在文件上有用户名和密码。如果是这种情况,您可以将其添加到连接字符串中
cmd.Parameters.AddWithValue(“uname”,uname)
cmd.Parameters.AddWithValue(“pword”,pword)

如果移除这些线路有帮助,请告诉我。我习惯于用C#连接数据库,我一分钟也没用VB,但我想这可能会有所帮助。祝你好运

删除该系统时显示此错误。invalidOperationException:行/列不存在数据。在System.Data.OleDb.OleDbDataReader.DoValueCheck(Int32 ordinal)在System.Data.OleDb.OleDbDataReader.GetValueCheck(Int32 ordinal)在System.Data.OleDb.OleDbDataReader.get_Item(字符串名称)在WindowsApplication8FormLogin.login()在~~目录~~第17行,其中第17行是如果uname=read.Item(“uname”)。ToString和pword=read.Item(“pword”))好吧,我只是从零开始删除了代码,顺便说一句,因为vs只是想变得更难,这应该是唯一的问题,然后它崩溃了这总是一个很好的方法,有时只是清除感染区域,让我们清楚如何更好地在下一次编写它。虽然我知道人们声称只做一次,但通常在几周后我重温我的代码时,我会想,哇,我在几周前凌晨3点做了什么,然后晚上就去重写了。祝你一切顺利。哦,天哪,我没有仔细看,当说username=admin应该是“admin”时,又出现了一个错误,但考虑到你的帖子,如果这是你的问题的话,请点击idk。