我不知道该如何解决,我已经尝试了一切。
错误 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
答案 0 :(得分:2)
InvalidOperationException用于由于无效参数以外的原因导致调用方法失败的情况。通常,当对象的状态不能支持方法调用时将抛出该异常。对于您的情况commLogin.Connection.Open()
。
提供程序“ Microsoft.ACE.Oledb.12.0”未在本地计算机上注册。
此错误是,因为默认情况下未安装Ace.Oledb.12.0
。您可以here安装它。
请注意,Using Statements处理完毕后,请处置资源。