加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2016-10-16 19:49:58)
标签:

未在本地计算机上注册

microsoft.jet.oledb.

解决方法

分类: 代码天地

开发系统是32位的 x86,目标系统是64位的x64,运行网站程序导入Excel数据,提示:

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

追踪后了解是版本不同所致,Office与其对应的引擎,及其支持环境如下:
Office 2003 -->  Microsoft.Jet.OLEDB.4.0  -->  x86 
Office 2007 -->  Microsoft.ACE.OLEDB.12.0 -->  x86
Office 2010 -->  Microsoft.ACE.OLEDB.14.0 -->  x64

注意引擎中的字符变化   Jet ACE
 Jet  --> 4.0
 ACE  --> 12.0
 ACE  --> 14.0

对于C#语句如下:
string Filename=“c:\\my.xls”;

       string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + Filename + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";

       string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + Filename + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1;'";

找到原因,就可以改变了。解决方法如下(也参考网上方法):

方法一:目标机器应用程序池改变

控制面板 --  管理工具 -- 双击  Internet 信息服务(IIS)管理器 -- 
展开左侧机器的名称,点击其中的“应用程序池”--右击 你使用的应用程序池 比如 ASP.NET v4.0 -- 设置应用程序池默认属性 -- 常规 -- 启用32位应用程序,设置为 true。 如下图所示:
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” <wbr>提供程序

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




方法二: 开发环境的改变

这里使用的是vs2010,改变方法如下:

菜单上 ,生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86。 如下图所示: 


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



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

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有