未在本地计算机上注册“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”提供程序)

  1. 安装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+office2007(c# winForm开发),选择的 2(2)中的数据库引擎,在安装过程中遇到以下问题。我采用的解决方法是:将提示中列出的几项Microsoft Office Enterprise 2007等删除,删除后再安装数据库引擎,安装成功(导入Excel问题解决)。之后依然安装之前的office2007,安装过程中出现问题忽略,继续安装,安装完毕后,office能正常使用。

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序_第1张图片

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

  1. 目标平台改为:x86

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序_第2张图片

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

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序_第3张图片

http://blog.51cto.com/cuicaiyun/1380389

你可能感兴趣的:(c#)