现在的位置: 首页 > 综合 > 正文

asp.net系统导入Excel数据时提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序”

2013年02月01日 ⁄ 综合 ⁄ 共 959字 ⁄ 字号 评论关闭

 

服务器软件环境:

操作系统: windows server 2008 (X64)

数据库:MS SQl server 2008

NF:.Netframework 3.5

IIS 7.0

程序使用Microsoft.Jet.OLEDB.4.0”来连接Excel文件,在开发环境测试通过,上传到服务后,导入Excel文件,出现"未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序"错误.在MS SQl server 2008中使用以下语句导入:SELECT * INTO #temp2009100 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:/test.xls', [第一批$]).出现同样的错误.google后得出的结论:

1.Microsoft.Jet.OLEDB.4.0不要写成Miscrosoft.Jet.OLEDB.4.0,;
2.Data Source不要写成“Data Sourse”,
3.检查是否安装了Office
4.重新安装注册MDAC28.exe (一般你的安装目录里有或者到微软的官方网站上下)

排除前面三项,因为本地程序测试通过,这种导入方式无需安装office

第四种方法执行过,但是安装后没有提示,之后在C:/Windows/SysWOW64找到msjetoledb40.dll,并重新注册,重起计算机后无效.

回想安装MDAC28时打开执行时解压缩窗口就没了.怀疑MDAC28不支持64位系统.实在没有办法,再用baidu搜索." Microsoft.Jet.OLEDB.4.0 64位系统".终于找到了解决方案:

 

解决了,在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。
估计是Windows 里已经有了 Microsoft.Jet.OLEDB.4.0,32位的,但是默认情况下应用程序池不启用32位程序,所以显示没有安装“Microsoft.Jet.OLEDB.4.0”。

http://blog.crowe.co.nz/blog/archive/2007/04/16/728.aspx

Jet的开发已经停止了,所以没有64位的版本

另:系统位数的查看.运行->cmd->systeminfo

 

 

抱歉!评论已关闭.