“Microsoft.Jet.OLEDB.4.0” 解决方法

本文详细介绍了在使用C#读取Excel文件时遇到未在本地计算机上注册Microsoft.Jet.OLEDB.4.0提供程序错误的解决方法,包括检查链接字符串、注册组件、重新安装MDAC等步骤,并最终通过修改注册表权限解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一、

 1.命令行键入:

cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

即设置IIS6允许32位程序运行在64位机器上

2.重新注册.net FrameWorks

%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

3.完成之后,在IIS中web扩展应该会看到多出一个32位的asp.net,点击允许


方法二、

c#读 Excel 出现了如下问题
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。System.Data
在网上多方找资料也没找到好的解决方法。简单的程序代码如下:

 DataSet ds;
            try
            {
                OleDbConnection cnn = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;data source=" + ofdPhoneFile.FileName + ";Extended Properties=Excel 8.0;");
                OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [Sheet1$]", cnn);
                cnn.Open();
                ds = new DataSet();
                cmd.Fill(ds);
                cnn.Close();
            }

 catch (System.Data.OleDb.OleDbException ex)
            {
                MessageBox.Show(ex.Message, "出错啦!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。System.Data

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

5.如果是64位平台,也可能出现这种情况;

解决方法:生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86

——————————————————————————————————————

确认Msjet40.dll 版本

——————————————————————————————————————

1.检查链接字符串书写是否正确,"Provider=Microsoft.Jet.Oledb.4.0;Data Source=数据库路径"

拼写无误,问题仍存在

2.注册组件 regsvr32 msjetoledb40.dll 问题依然存在

3.重新安装MDAC28.exe,无奈问题还存在。

网上关于这个错误的解决办法一般就以上三种,那我的问题出现在哪里呢?会不会是权限问题?

4.打开注册表(开始菜单--》运行--》regedit),搜索“Microsoft.Jet.Oledb.4.0”,查看权限,发现未给iis_wpg读取权限。

于是给“Microsoft.Jet.Oledb.4.0”项加上Everyone读取权限。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值