c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”

时间:2023-03-10 06:19:41
c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”

简单的程序代码如下:
DataSet ds=new DataSet();
try
{
string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\test.xls;Extended Properties='Excel

8.0;HDR=YES;IMEX=1'";
OleDbConnection oleCon = new OleDbConnection(strCon);
oleCon.Open();
OleDbDataAdapter oleDA = new OleDbDataAdapter("select * from [sheet$]", oleCon);
oleDA.Fill(ds);

catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.Source + ex.InnerException);
}
报错:未在本地计算机上注册 “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安装目录里有或者到微软的官方网站上下)
  http://access911.net/fixhtm/72FABF1E14DC.htm?tt= (这个地址是一个朋友给的)
5.如果是64位平台,也可能出现这种情况;解决方法:生成->配置管理器-> 平台->点击Any Cpu选项卡->新建->新建平台->X86

-------------------------------

此方法的前提是, 你书写的 ConnectionString 是正确的, 形如:
Provider=microsoft.Jet.Oledb.4.0;Data Source=;Jet Oledb:Database Password=xxx;

如果此时,提示 “找不到提供者” 或 “未正确安装”, 原因是JET 4.0的 DLL在注册表中的信息, 由于某种原因被损坏或丢失,解决方法如下:

开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车。

建议重启一下,问题即可解决。
/////////////////////////////////////////////////

附上:Jet 4.0 Service Pack 8 下载地址
Jet 4.0 Service Pack 8 (SP8) for Windows 95 / 98 / NT 4.0
快速描述
Microsoft Jet 4.0 Service Pack 8 (SP8) 提供对 Microsoft Jet 4.0 数据库引擎的最新更新。请立即下载,以便获取整合了 Microsoft Jet 4.0 的 Microsoft 产品使用的几个文件的最新版本。
http://www.microsoft.com/downloads/details.aspx?FamilyID=4335216c-8cdd-4168-a030-46f815d3f5cd&DisplayLang=zh-cn