我有一个带有两个项目的Visual Studio 2008解决方案(一个Word-Template项目和一个用于测试的VB.Net控制台应用程序).这两个项目都引用一个数据库项目,该项目打开与MS-Access 2007数据库文件的连接,并引用System.Data.OleDb.在数据库项目中,我有一个函数,它按如下方式检索数据表
private class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim …Run Code Online (Sandbox Code Playgroud) Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册.
和
Microsoft.JET.OLEDB.4.0'提供程序未在本地计算机上注册.
对我来说都是错误的.我在尝试创建Access连接时一直在尝试.我不知道该怎么做了.
我在64位机器上有32位的办公室.我找到了他们说安装Access数据库引擎的解决方案,但它不会让我安装64位32位办公室.提到绕过这个的另一个来源你可以进入命令行,$> AccessDatabaseEngine_X64.exe /passive但是被动不被识别为命令.
我发现另一个可能的解决方案,即下载Office系统驱动程序和组件,然后将访问数据库添加为源,但这也无效.如果有人可以提供帮助,我会非常感激.
链接到我所指的文章:
我一直在尝试访问驻留在我的计算机上的MS Access数据库文件,当我安装了办公室时,它工作得很好.
当我尝试在未安装Office安装/驱动程序的计算机上使用相同的代码时,会抛出错误" Microsoft.ACE.OLEDB.12.0提供程序未注册 "
我在这篇文章中跟进了Microsoft.ACE.OLEDB.12.0提供程序未注册,但这里的解决方案是在物理上安装可再发行组件.虽然我想用C#以编程方式进行.
这只能通过物理安装才能实现,这是唯一的出路吗?