错误的System.InvalidOperationException'发生在vb上的System.Data.dll中

时间:2019-03-27 14:33:59

标签: vb.net ms-access

我不知道该如何解决,我已经尝试了一切。

错误 System.Data.dll中发生了System.InvalidOperationException”

其他信息:提供程序'Microsoft.ACE.Oledb.12.0'未在本地计算机上注册。

在此代码行上弹出  commLogin.Connection.Open()

我需要帮助!

    If TextBox1.Text = "" Then
        MessageBox.Show("Username!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
        TextBox1.Focus()
    ElseIf TextBox2.Text = "" Then
        MessageBox.Show("Password!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
        TextBox2.Focus()
    Else
        Dim conLogin As New OleDb.OleDbConnection("PROVIDER=Microsoft.ACE.Oledb.12.0; Data Source = E:\projeto.mdb")
        Dim commLogin As New OleDb.OleDbCommand("SELECT login.password FROM login WHERE nome_util = @username AND password = @password", conLogin)
        Dim usernameParam As New OleDb.OleDbParameter("@username", Me.TextBox1.Text)
        Dim passwordParam As New OleDb.OleDbParameter("@password", Me.TextBox2.Text)

        commLogin.Parameters.Add(usernameParam)
        commLogin.Parameters.Add(passwordParam)
        commLogin.Connection.Open()

        Dim reader As OleDb.OleDbDataReader = commLogin.ExecuteReader()
        If reader.HasRows Then
            MessageBox.Show("ggwp", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information)
            principal.Show()
            Me.Hide()
        Else
            MessageBox.Show("Keep Trying", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox1.Clear()
            TextBox2.Clear()
            TextBox1.Focus()
        End If
        commLogin.Connection.Close()
    End If

1 个答案:

答案 0 :(得分:2)

InvalidOperationException用于由于无效参数以外的原因导致调用方法失败的情况。通常,当对象的状态不能支持方法调用时将抛出该异常。对于您的情况commLogin.Connection.Open()

  

提供程序“ Microsoft.ACE.Oledb.12.0”未在本地计算机上注册。

此错误是,因为默认情况下未安装Ace.Oledb.12.0 。您可以here安装它。

请注意,Using Statements处理完毕后,请处置资源。

来源:InvalidOperationException