错误:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序

       使用背景:VS2013+office2010      

       最近写一个execl数据表导入方案,以前做过,拿过来几分钟就写好了,但是在导入execl表的时候,竟然出现错误,未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序 嗯?我尝试运行以前做过的程序,导入execl表格很成功啊,为毛在新的解决方案这有毛病了?

百度了下说是缺少AccessDatabaseEngine.exe 文件 好下了个2007 ,2010都没用2010 64位的还没办法安装

而且能安装的都没啥用,好嘛 卸了。继续百度

1.在程序中右键属性,把生成里面的目标平台改为x86

然后。。。。就能运行了 ,问题是我以前做的不用改那个就能运行。。。

想了想,我前一段时间把vs2013卸了,然后装的vs2015然后又把vs2015卸了装的vs2013.。。。可能中间有什么东西被卸载了吧。

微软msdn有些解释:https://docs.microsoft.com/zh-cn/previous-versions/office/ff965871(v=office.14) 大致是:

如果您尝试针对 64 位的 Access 运行旧式的 32 位代码,则会发生运行时错误。例如,如果应用程序(32位代码)和与 64 位 Microsoft Access 一同安装的 64 位 ACE 提供程序之间的版本不匹配,则可能会造成错误“'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册”。若要更正此问题,可以将自定义代码升级至 64 位版本或卸载 64 位 Access 然后替换为 32 位 Access。

反正大概就是版本问题,需要多注意。还是很迷惑????

 

-----------------------------------

感谢网友提供的第二种方法:

把部署站点的应用程序池-高级设置-常规-启用32位应用程序改为True就可以了

-------------------------------------------------------------------------------------------

第三种方法

  1、安装数据访问组件:

  适用于office2007、office2010的Microsoft Access Database Engine 2010 Redistributable

  https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

  下载AccessDatabaseEngine.exe

  2、在IIS应用程序池中,设置“”启用兼容32位应用程序”,此设置适用于web项目;

  在运行框用inetmgr命令打开IIS管理器,选择该应用程序的应用程序池——>高级设置——>启动32位应用程序——>true 

  3、在项目--->项目属性中找到 生成–-->目标平台,设置为X86位。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值