错误:提供程序未在本地计算机上注册

时间:2018-04-13 07:57:37

标签: vb.net vba visual-studio visual-studio-2010

我正在将访问数据库连接到vb上的数据网格视图,我遇到了错误

  

"其他信息:' Microsoft.ACE.OLEDB.12.0Data Source =   CUBSDatabase.accdb'提供商未在本地计算机上注册。"

我正在使用visual studio version 2015,语言视觉基础。 我的访问数据库保存在调试文件夹

的bin中

这是我的代码到目前为止; 知道如何摆脱错误吗? 错误在// adt.Fill(datatable)

行上显示
Imports System.Data.OleDb

Public Class Form1
    Dim dbconn As New OleDbConnection
    Dim adt As New OleDbDataAdapter
    Dim ds As New DataSet

    Dim datatable As New DataTable
    Dim cmd As New OleDbCommand


        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   dbconn.ConenctionString = ("Provider=Microsoft.ACE.OLEDB.12.0" &
"Data Source = CUBSDatabase.accdb")
showData()

    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click

        adt = New OleDbDataAdapter("insert into Student (FName, SName, Attendance, CA1, CA2, FinalExam) values ( '" & txtFName.Text & "','" & txtSName.Text & "',  '" & txtAttendance.Text & "', '" & txtCA1.Text & "', '" & txtCA2.Text & "', '" & txtFinalExam.Text & "', )", dbconn)

        adt.Fill(ds)
        ds = New DataSet
        MsgBox("Saved")
    End Sub

    Private Sub showData()
        Dim dbcommand As String
        dbcommand = "SELECT * FROM Students"
        adt = New OleDbDataAdapter(dbcommand, dbconn)
        datatable = New DataTable
        adt.Fill(datatable)
        DataGridView1.DataSource = datatable

    End Sub
End Class

2 个答案:

答案 0 :(得分:0)

也许你只是在你的提供商名称之后忘记了你的代码中的分号,因为通常你应该有类似的东西

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=...

如果不是您的情况,根据this answer类似的问题,您需要在您的计算机上安装提供程序;作为初步检查,您可以按照另一个answer查看相同的问题,看看您是否已经拥有包括您的提供商的DLL,即ACEOLEDB.DLL,其中一条路径是:

  • C:\ Program Files \ Common Files \ Microsoft Shared \ OFFICE14
  • C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ OFFICE14

当然,您可以将这些路径调整为您计算机上的Office版本,这些版本列在this answer中,例如

  
      
  • Office 2007 12
  •   
  • Office 2010 14
  •   
  • Office 2013 15
  •   
  • Office 2016 16
  •   

<小时/> 编辑:以下内容不适用于Jet won't handle accdb个文件。

最后但并非最不重要的一点是,如果您不想安装任何内容或想要快速检查代码功能,可以重写连接字符串以使用较旧的(遗留的,可能是被鄙视的)提供程序,即{ {3}},包含在Windows中:

dbconn.ConenctionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = CUBSDatabase.accdb")

当然,两者之间的效率有Jet

答案 1 :(得分:0)

使用此格式。

Dim cons As String = "provider= Microsoft.ACE.OLEDB.12.0; Data Source=D:\Users\rjimenez\Documents\QAdatabase.mdb"

但你仍然有错误。下载 AccessDatabaseEngine

希望它能起作用!