Code Bye

Microsoft.ACE.OLEDB.12.0 在应用时,编译.net应用程序的问题

编辑预览
Microsoft.ACE.OLEDB.12.0应用的应用程序,有些64位的机器可以打开EXCEL有些就无法打开
之前设置的编译属性是Any CPU,prefer 32-bit
不能打开的64位机器,修改应用程序编译属性为x64之后可以打开
确定都已经下载了AccessDatabaseEngine
不能打开的机器,报的错误都是

应该怎么做,能够使这个应用程序适用于全部的类型的机器呢?
解决方案

5

引用:

都已经安装了,本人也尝试着按照网上说的将anycpu下面的prefer-32位取消勾选,但是之前可以用的机器又不能用了,电脑的版本和office的版本都是一样的,不知道是为什么呢

你试试。这是网上的一些办法
1.在用SQL SERVER 2005访问.xlsx文件(office2007&2010文件格式)时,必须用
provider “Microsoft.ACE.OLEDB.12.0″ 来实现。
2.首先要安装AccessDatabaseEngine.exe。
下载路径:http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
3.在32位系统中可以在数据库中看见这个provider。
4.在64位系统中不能看见它,这时需调用
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
来执行package。

假如还不行执行下这句
EXEC master.dbo.sp_MSset_oledb_prop N”Microsoft.ACE.OLEDB.12.0″, N”AllowInProcess”, 1

15

那会不会是你引用的office的excel版本太高了?
使用低版本的试试看。
之前本人遇到这个问题,就是使用了office的貌似12版本导致的。后来改成了4。0好像解决了。
在数据库驱动的连接字符串 里有设置。
conn = “Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =” + excelPath + “;Extended Properties=”Excel 8.0;HDR=Yes;IMEX=1″”;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Microsoft.ACE.OLEDB.12.0 在应用时,编译.net应用程序的问题