我正在将访问数据库连接到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
答案 0 :(得分:0)
也许你只是在你的提供商名称之后忘记了你的代码中的分号,因为通常你应该有类似的东西
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=...
如果不是您的情况,根据this answer类似的问题,您需要在您的计算机上安装提供程序;作为初步检查,您可以按照另一个answer查看相同的问题,看看您是否已经拥有包括您的提供商的DLL,即ACEOLEDB.DLL,其中一条路径是:
当然,您可以将这些路径调整为您计算机上的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
希望它能起作用!