未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序问题解决方案
报错各种原因和解决方法:
- 没有安装数据访问组件,需要安装相应版本的数据访问组件AccessDatabaseEngine,64位操作系统安装32位的AccessDatabaseEngine_x86,反之。
请参考:https://blog.csdn.net/u013780740/article/details/88572358 - 没有安装相应版本的Office客户端,需要安装相应版本的Office客户端。
- 没有在IIS应用程序池配置默认属性,需要在相应的IIS应用程序池启用32位应用程序。
- 连接字符串的问题。采用Microsoft.Jet.OleDb.4.0,可以读取excel2007以前的版本,在客户机上不需要部署office,采用Microsoft.Ace.OleDb.12.0的时候,需要安装引擎。
- 顺便说一下,在使用“Microsoft.Jet.OLEDB.4.0”,也会报类似错误,原因有可能是,Microsoft.Jet.OLEDB.4.0在64位系统上不支持,需要修改架构,从x64改为x86,无论是WinForm还是ASP.NET;或者修改连接字符串为Microsoft.ACE.OLEDB.12.0并且安装AccessDatabaseEngine x64数据访问组件。