The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine 解决办法

64位操作系统中使用OLEDB去访问access数据库,出现 The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine 错误提示。

在网上查找资料,大多数解决办法如下:

如果是WebSite且是IIS6
键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

如果是IIS7
appcmd list apppool /xml | appcmd set apppool /in /enable32BitAppOnWin64:true

具体资料,参考:http://www.cnblogs.com/goodspeed/archive/2009/02/05/1384476.html

但是上面的方法使用之后,会出现“Service Unavalable”的错误,连接池会自动关闭。


于是找到另外一种方法:

安装AccessDatabaseEngine,下载地址:http://www.microsoft.com/download/en/details.aspx?id=13255

使用此下载:
1.如果您是应用程序用户,请查阅应用程序文档以获得有关如何使用相应驱动程序的详细信息。
2.如果您是使用 OLEDB 的应用程序开发人员,请将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”
◦如果要连接到 Microsoft Office Excel 数据,请将“Excel 14.0”添加到 OLEDB 连接字符串的扩展属性中。
3.如果您是使用 ODBC 连接到 Microsoft Office Access 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
4.如果您是使用 ODBC 连接到 Microsoft Office Excel 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”

这种方法可以解决问题

你可能感兴趣的:(The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine 解决办法)