0

我正在使用 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 的正确连接字符串是什么?

4

4 回答 4

4

充当 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:\Users\Gord\Desktop\Database1.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 Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL

C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL

在 64 位计算机上,第一个文件指示已安装 64 位版本的 Access 数据库引擎。在 32 位机器上,它表示已安装 32 位版本。

如果存在第二个 (x86) 文件,则您知道 32 位版本的 Access 数据库引擎存在于 64 位计算机上。

编辑回复:最终评论

这个问题确实与 Access Database Engine 的“位”有关:

我安装“Microsoft Access Database Engine 2010”64 位我应该安装 32 位,因为我的 Visual Studio 是 32 位感谢您的建议

于 2013-03-26T11:25:04.093 回答
0

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

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

于 2015-04-12T18:17:36.003 回答
0

让提供程序到 12.0 它适用于 ACCESS 2013

只需安装这两个元素:

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

然后

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

PS:32 位 x86 和 64 位 x64。

于 2016-11-09T15:20:56.567 回答
-1

这里用这个

提供者=Microsoft.ACE.OLEDB.15.0

这是 ms access 2013 的连接字符串

于 2014-07-07T14:35:18.450 回答