OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
错误信息:
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
解决方案:
首先要确定程序是x86还是x64,AnyCpu支持x86及x64,然后下载ACE驱动。
Microsoft ACE:AccessDatabaseEngine 下载地址:
选择x86还是x64下载:

若下载了x64位安装程序,安装时出现以下提示要先删除32位的ACE。

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
所以,在使用不同版本的office时,要注意使用合适的引擎。
Jet连接语句:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\您 的数据库名.mdb;Persist Security Info=True;Jet OLEDB:Database Password=您的数据库密码
ACE连接语句:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\您 的数据库名.accdb;Persist Security Info=True;Jet OLEDB:Database Password=您的数据库密码
DbConnection连接字符串
C# Code:
public DbConnection CreateConnection()
{
string conn = "";
string fileExt = Path.GetExtension(_FileName);
if (fileExt == ".xls")
{
// IMEX=1 可把混合型作为文本型读取,避免null值
//xls
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _FileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
}
if (fileExt == ".xlsx")
{
//xlsx格式的OLEDB链接
conn = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source =" + _FileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
}
if (String.IsNullOrWhiteSpace(conn)) throw new Exception("不能识别的文件格式!");
return new OleDbConnection(conn);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
string conn = "";
string fileExt = Path.GetExtension(_FileName);
if (fileExt == ".xls")
{
// IMEX=1 可把混合型作为文本型读取,避免null值
//xls
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _FileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
}
if (fileExt == ".xlsx")
{
//xlsx格式的OLEDB链接
conn = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source =" + _FileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
}
if (String.IsNullOrWhiteSpace(conn)) throw new Exception("不能识别的文件格式!");
return new OleDbConnection(conn);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
C#导出数据到Excel 源码大全
Winform框架通用导入程序,支持Excel,xls/xlsx格式|C/S开发框架
C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架网
ADO,OLEDB,ODBC,DAO,RDO概念和区别
C/S架构软件开发平台 | 旗舰版V6.0 | 自动创建数据库备份计划|C/S开发框架
MySql数据库连接字符串(ConnectionString)配置参数大全|C/S开发框架
DAL层连接多数据库跨服务器进行数据交互对接|C/S开发框架
WCF开发框架默认连接:HTTP协议+Message安全模式+Windows客户端认证
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
Winform框架通用导入Excel文件源码下载
SQL Server连接池基本原理
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
C#导出数据到Excel 源码大全
Winform框架通用导入程序,支持Excel,xls/xlsx格式|C/S开发框架
C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架网
ADO,OLEDB,ODBC,DAO,RDO概念和区别
C/S架构软件开发平台 | 旗舰版V6.0 | 自动创建数据库备份计划|C/S开发框架
MySql数据库连接字符串(ConnectionString)配置参数大全|C/S开发框架
DAL层连接多数据库跨服务器进行数据交互对接|C/S开发框架
WCF开发框架默认连接:HTTP协议+Message安全模式+Windows客户端认证
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
Winform框架通用导入Excel文件源码下载
SQL Server连接池基本原理
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
