Windows或SqlServerSSMS:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序(AccessDatabaseEngine)
Windows或SqlServerSSMS:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序(AccessDatabaseEngine)
环境:Win7、Win10 32位、Win10 64位系统
说明: C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
解决办法:
1、下载对应组件安装:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255
请下载非64位的AccessDatabaseEngine.exe 。
注意:要选择AccessDatabaseEngine.exe,而不是AccessDatabaseEngine_X64.exe,否则还会提示相同的错误!!!
(Tips:无论是32位还是64位操作系统和Office位数,都不能使用_X64的AccessDatabaseEngine。使用AccessDatabaseEngine.exe兼容性最好)
扩展阅读:
1). VS问题:C#来访问ACCESS或者Excel时,会用到数据库访问的组件,有时候会出现如下图所示的错误,即Microsoft.Jet.OLEDB.4.0,microsoft.ACE.oledb.12.0 provideer is not registered on the local machine.
解决方法:
2). IIS Excel读取
C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
解决方法:
控制面板-管理工具中打开IIS(如果没有,在控制面板-程序与功能-启用或关闭windows功能-选择IIS功能),IIS中的设置如下:(设置完成后重新启动IIS)
修改连接字符串
支持xls:strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
支持xls和xlsx:strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES\"";
··
相关文章
- [原创]一个简单的windows HOOK - 隐藏进程管理器中特定的进程
- windows server 2003 安全加固(一)
- Redis启动和在注册到windows服务
- Creating a Unity Game for Windows 8
- Windows 由于无法验证发布者,windows阻止控件安装怎么办
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- C#:安装Windows服务,动态指定服务名及描述
- windows下强制杀死tomcat进程
- windows下查看文件的MD5值
- chromium在windows上的编译 构建 Checking out and Building Chromium for Windows
- windows 杂项
- Windows关机/重启命令
- Windows下一个AndroidStudio 正在使用Git(AndroidStudio工程GitHub关联)
- C# 编写Windows Service(windows服务程序)
- Crk:TX Text Control .NET for Windows Forms 31.0 SP1
- Windows安装WSL进行机器学习(windows和Ubuntu同时使用)