您的位置:首页 > 理论基础

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

2011-01-05 15:28 603 查看
服务器软件环境:

操作系统: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐