vb 上的 System.Data.dll 中发生错误 System.InvalidOperationException' [重复]
Posted
技术标签:
【中文标题】vb 上的 System.Data.dll 中发生错误 System.InvalidOperationException\' [重复]【英文标题】:Error System.InvalidOperationException' occurred in System.Data.dll on vb [duplicate]vb 上的 System.Data.dll 中发生错误 System.InvalidOperationException' [重复] 【发布时间】:2019-03-27 14:33:59 【问题描述】:我不知道如何解决这个问题,我已经尝试了所有方法。
错误 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】:InvalidOperationException 用于由于无效参数以外的原因导致调用方法失败的情况。通常在对象的状态不能支持方法调用时抛出;在你的情况下commLogin.Connection.Open()
。
提供程序“Microsoft.ACE.Oledb.12.0”未在本地计算机上注册。
这个错误是因为Ace.Oledb.12.0
默认没有安装。你可以安装它here。
作为旁注,请查看 Using Statements 以在您完成资源处理后对其进行处置。
来源:InvalidOperationException
【讨论】:
或者它在那里,但项目/ACE 有不同的位数。 @Jimi 正确,可能不同;我只是假设最常见的原因是默认情况下没有安装它; x64 版本。以上是关于vb 上的 System.Data.dll 中发生错误 System.InvalidOperationException' [重复]的主要内容,如果未能解决你的问题,请参考以下文章
C# - INSERT INTO 语句中的语法错误(System.Data.dll 中发生“System.Data.OleDb.OleDbException”类型的未处理异常)
未经处理的异常在 System.Data.dll 中发生。其它信息:在应使用条件的上下文(在 '***' 附近)中指定了非布尔类型的表达式。