Access 2013的OleDb连接字符串是什么?



我正在使用Visual Studio 2012创建一个Web应用程序,该应用程序连接到Access 2013数据库,编程行如下:

string connectionString = "provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + Page.Server.MapPath("App_Data\db1.accdb");

但是由于错误

导致启动失败

Microsoft.ACE.OLEDB.12.0在本地机器中找不到

Microsoft Access 2013的正确连接字符串是什么?

作为web服务器的机器必须安装"Microsoft Access Database Engine 2010"。如果那台机器上没有安装Access,那么你可以在这里下载引擎的安装程序。

注意64位安装程序只包含64位版本;它不包括32位版本(在同一页面上单独提供)。

编辑…

至于连接字符串,我刚刚在Access_2013机器上测试了以下VBScript,它工作得很好。

Option Explicit
Dim con, rst
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersGordDesktopDatabase1.accdb;Persist Security Info=False;"
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT Col1 FROM Table1", con
Wscript.Echo rst(0).Value
rst.Close
Set rst = Nothing
con.Close
Set con = nothing

我从connectionstrings.com复制了连接字符串。

编辑…

如果您可以访问web服务器,您可以检查以下两个文件的存在:

C:Program FilesCommon FilesMicrosoft SharedOFFICE14ACEOLEDB.DLL
C:Program Files (x86)Common FilesMicrosoft SharedOFFICE14ACEOLEDB.DLL

在64位机器上,第一个文件表示安装了64位版本的Access Database Engine。在32位机器上,表示安装了32位版本。

如果第二个(x86)文件存在,那么您就知道在64位机器上存在32位版本的Access Database Engine。

edit re: final comment

这个问题确实与Access数据库引擎的"位"有关:

我安装了"Microsoft Access Database Engine 2010"64位,我应该安装32位,因为我的visual studio是32位,谢谢你的建议

这取决于你安装的办公室,如果你有x64位的办公室,那么你必须将应用程序编译为x64才能运行,所以如果你想让它在x36上运行,那么你必须安装office x86来接受,我尝试了上面所有的解决方案,但没有一个工作,直到我意识到我有办公室x64位,所以我将应用程序构建为x64并工作。

我也意识到,如果你把它放在任何cpu,但不设置为首选32位也工作

让供应商12.0它适用于ACCESS 2013

只需安装这两个元素:

1)Microsoft Access 2013 Runtimehttps://www.microsoft.com/en-us/download/details.aspx?id=39358

然后

2)microsoft access数据库引擎2007https://www.microsoft.com/en-us/download/details.aspx?id=23734

PS: x86 for 32位&

此处使用

提供者= Microsoft.ACE.OLEDB.15.0

这是ms access 2013的连接字符串

相关内容

  • 没有找到相关文章

最新更新