我不知道如何解决这个问题,我已经尝试了一切。
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
如果调用方法失败是由无效参数以外的原因引起的,则使用InvalidOperationException。通常,当对象的状态不支持方法调用时抛出它;在你的情况下commLogin.Connection.Open()
。
提供程序“Microsoft.ACE.Oledb.12.0”未在本地计算机上注册。
此错误是因为默认情况下未安装Ace.Oledb.12.0
。你可以安装它here。
作为旁注,请查看Using Statements,以便在完成资源后处理资源。