在System上的System.Data.dll中发生错误System.InvalidOperationException [重复]

问题描述 投票:0回答:1

我不知道如何解决这个问题,我已经尝试了一切。

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
vb.net ms-access
1个回答
2
投票

如果调用方法失败是由无效参数以外的原因引起的,则使用InvalidOperationException。通常,当对象的状态不支持方法调用时抛出它;在你的情况下commLogin.Connection.Open()

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

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

作为旁注,请查看Using Statements,以便在完成资源后处理资源。

资料来源:InvalidOperationException

© www.soinside.com 2019 - 2024. All rights reserved.