【问题标题】:"The Microsoft.ACE.OLEDB.12.0 provider is not installed on your local machine" Exception is thrown while connecting to Access database“您的本地计算机上未安装 Microsoft.ACE.OLEDB.12.0 提供程序”连接到 Access 数据库时引发异常
【发布时间】:2016-09-06 06:39:44
【问题描述】:

我一直在尝试将 Microsoft 数据库文件连接到我的 Visual Basic 应用程序。

但是当我尝试使用代码连接它时,它会运行,但只要我单击按钮检查凭据,它就会崩溃(visual studio 说它在粗体区域崩溃)

代码:

Dim con As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data   source=P:\POS System\POS System Database.mdb")
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Login Info WHERE    Username = 'user" & txtStaffID.Text & "' AND password = 'user" &     txtPassword.Text & "' ", con)
con.Open()
Dim sdr As OleDbDataReader = cmd.ExecuteReader()
If (sdr.Read() = True) Then
'Pass verification and go to main form.
 Me.Hide()
 Else
 MsgBox("Sorry, The Username or Password was incorrect.",   MsgBoxStyle.Critical, "Information")
 End If

但是当我尝试通过向导连接它时,我得到了这个错误:

您的本地计算机上未安装 Microsoft.ACE.OLEDB.12.0 提供程序

有人知道吗?

【问题讨论】:

  • 请直接在此处添加代码。
  • 我用反引号也不让我加,我再试试
  • 搞定了。
  • 提示:使用OleDbCommand.Parameters-属性改进您的OleDbCommand。现在inject your database 绝对容易。在使用此代码查看示例之前,只需将' 放入其中一个TextBoxes

标签: vb.net ms-access


【解决方案1】:

昨天刚遇到这个问题。 安装2007 Office System Driver 并重启visual studio。

顺便说一句,使用ExecuteScalar() 在登录表单中查找用户和密码之间的匹配项是一种更好的做法:

  Dim result As Integer = 0
        Dim con As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data   source=P:\POS System\POS System Database.mdb")
        Dim cmd As OleDbCommand = New OleDbCommand("SELECT COUNT(*) FROM Login Info WHERE    Username = 'user" & txtStaffID.Text & "' AND password = 'user" & txtPassword.Text & "' ", con)
        con.Open()
        result = DirectCast(cmd.ExecuteScalar(), Integer)
        con.Close()
        If result > 0 Then
            'Pass verification and go to main form.
            Me.Hide()
        Else
            MsgBox("Sorry, The Username or Password was incorrect.", MsgBoxStyle.Critical, "Information")
        End If

【讨论】:

  • 谢谢!我现在收到此错误,但当我输入任何内容imgur.com/a/TUWFM
  • 您必须更改连接字符串(您现在使用的是 ACE 引擎而不是 JET)。还有什么是 P:\ 驱动器?它不是物理路径 - 使用根目录。请阅读:connectionstrings.com/access
  • 您还使用什么版本的 Access?最好使用 .accdb 文件而不是旧的 mdb。
  • 我看到还有一个 2010 版本的 AccessDatabaseEngine.exe。
猜你喜欢
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多