未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序(导入Excel文件报错)

出现该问题的原因:Jet项目已经停止,64位的系统不支持Jet

解决方法:采用ACE的方式,具体如下:

1. 修改连接字符串

原始:OleDbConnectionconn = new OleDbConnection("Provider = Microsoft.Jet."+ "OLEDB.4.0; Data Source =" + path + ";" + "Extended Properties=Excel 8.0");

改为:OleDbConnectionconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";" + "Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;\"");

(只做第1步更改,运行程序还会报错:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序)

2. 安装Microsoft Access 数据库引擎

(1)2007 Office system 驱动程序 http://www.microsoft.com/zh-CN/download/details.aspx?id=23734

支持的操作系统:Windows Server 2003 Service Pack 1, Windows Vista, Windows XP Service Pack 2
此下载适用于以下 Office 程序:2007 Microsoft Office system

(2)Microsoft Access 2010 数据库引擎 http://www.microsoft.com/zh-CN/download/details.aspx?id=13255

支持的操作系统:Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, Windows XP Service Pack 2只有 32 位 Access 数据库引擎可在 Windows XP Service Pack 3 上使用

 

注:本人使用的操作环境:64 win7+office2007c# winForm开发),选择的 22)中的数据库引擎,在安装过程中遇到以下问题。我采用的解决方法是:将提示中列出的几项Microsoft Office Enterprise 2007等删除,删除后再安装数据库引擎,安装成功(导入Excel问题解决)。之后依然安装之前的office2007,安装过程中出现问题忽略,继续安装,安装完毕后,office能正常使用。

 

还有一种方案是采用 x86方式运行(由于项目限制,我尝试此方法无效,有兴趣的可以试试)

1. 目标平台改为:x86

 

2. IIS设置启用32位应用程序

 

本文出自 “咖啡加点糖” 博客,请务必保留此出处http://cuicaiyun.blog.51cto.com/5098252/1380389

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。