未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序 或 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提
我想在64位的服务器上导出Excel,该服务器上安装的是office2007。
第一调试以下错误提示
提示“.net FrameWork数据提供程序要求 Microsoft Data Access Components (MDAC) 。请安装Microsoft Data Access Components(MDAC)2.6或更高版本”,“System.InvalidOperationException: .Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC)。请安装 Microsoft Data Access Components(MDAC) 2.6 或更高版本。 ---> System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {2206CDB2-19C1-11D1-89E0-00C04FD7A829} 的组件时失败,原因是出现以下错误: 80040154。”
在网上找了方法
第一、打开"c:\windows\inf" 注意:“inf”是隐藏目录。
找到文件“mdac.inf”。鼠标点击右键——> 安装 。
第二、提示要“I386文件夹中的文件”,插入windows xp 安装盘(或为网上下在windows I386 文件。)
这一不走完之后,再导出可是就提示如题的错误了,继续往上搜索
去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载。然后安装就行了。
已安装还是如题错误。
请指教,急求!!!!!!!
[最优解释]
设置 IIS 应用程序池 在 32位 模式下运行
可以解决 大多 因为 操作系统位数而产生的问题
[其他解释]
我也遇到过一样的问题。
首先你需要下一个32位的office的DataAccess驱动(需要最新版本的。)。安装在服务器上。
再在IIS的你的项目对应的程序池的高级选项中 有一个 可使用32位程序选项,默认是false,修改为true。
然后就可以使用了。
[其他解释]
64位windows2008server R2平台下发布网页,其中有个功能是在页面上连接并打开一个excel2007的表格,但是在客户端却提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;IMEX=1'")){}
解决办法1 (验证可以了)
选择 该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true
解决办法2
Microsoft.ACE.OLEDB.12.0是不能再x64上使用的,你要强制把你的web application编译成x86再发布到Win08 x64上,记得在Application pool上设置Enable 32bit Application = true。
(没有验证)
[其他解释]
Try to change target platform before compilation to "x86" instead of "Any CPU"
详见
http://social.msdn.microsoft.com/Forums/zh-CN/adodotnetdataproviders/thread/37643580-bf1f-4a3a-b63b-7d5aba2a940d
Basically, if you're on a 64-bit machine, IIS 7 is not (by default) serving 32-bit apps, which the database engine operates on. So here is exactly what you do:
1) ensure that the 2007 database engine is installed, this can be downloaded at: http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
2) open IIS7 manager, and open the Application Pools area. On the right sidebar, you will see an option that says "Set application pool defaults". Click it, and a window will pop up with the options.
3) the second field down, which says 'Enable 32-bit applications' is probably set to FALSE by default. Simply click where it says 'false' to change it to 'true'.
4) Restart your app pool (you can do this by hitting RECYCLE instead of STOP then START, which will also work).
5) done, and your error message will go away.
[其他解释]
是不是联接字符串错了
[其他解释]
你连接的是Access2007吧
OLE的驱动没装好
[其他解释]
怎么样查看Oledb的驱动是否安装好了
[其他解释]
该回复于2010-09-14 09:53:50被版主删除
[其他解释]
该回复于2010-09-14 09:54:40被版主删除
[其他解释]
64位服务器上,创建access库时,没有注册类别。服务器上有2007office和2003office,可是都不正确。为什么呢。。。。。。。。。。。。。。。。。。。。。
[其他解释]
怎么就没有人看到我的这个问题呢?
难道不感兴趣。
[其他解释]
语言c#,自己写的一个服务,用来创建Access数据库和向其添加数据
引用的是MSADOX.dll
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" dbName ";");//在路径下创建一个数据库
//cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" dbName ";");
以上两种连接数据库的方法都报“没有注册类别”
服务器是64位的,上面安装了ofiice2007和office2003,在32位服务器上是可以的。
求解!!!!!!!!!!!
[其他解释]
你只装了这个AccessDatabaseEngine.exe没效果,是因为提示你需要的东西你还未安装
Microsoft Data Access Components(MDAC)
[其他解释]
下载2010版本的就可以解决了
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=zh-cn
[其他解释]
我当初也是装了64位的驱动,是没有任何的效果的。
[其他解释]
看了还是不明白也没解决啊!
[其他解释]
工程右键,选择属性>>生成>>目标平台>>X86。修改后,再次运行,没有异常
[其他解释]
经过尝试,10楼的方法是有用的(只需第一句话)