前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

作者头像
_一级菜鸟
发布2020-05-20 00:23:40
5K0
发布2020-05-20 00:23:40
举报
文章被收录于专栏:工厂程序员工厂程序员

1.使用OLEDB读取Excel,本机调试正常,但是部署IIS上后,当点击按钮时,按钮变灰,系统也没捕获异常。

  在浏览器中看到异常:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

  百度搜索到问题原因是:Microsoft.Jet.OLEDB.4.0这个只能32位环境运行,服务器是64位。

代码语言:javascript
复制
 string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + allPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
 OleDbConnection connection = new OleDbConnection(connectionString);
 connection.Open();
 DataTable oleDbSchemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
 connection.Close();
 //默认读取第一sheet
 OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT *  FROM [" + oleDbSchemaTable.Rows[0]["TABLE_NAME"].ToString() + "]"
                                , connectionString);
 DataSet dataSet = new DataSet();
 adapter.Fill(dataSet, "ExcelInfo");
 DataTable dt = dataSet.Tables[0];

2.解决办法:

  方法一:更改IIS设置,启用32位应用程序,这样就可以兼容32位了。

  方法二:

第一步,先安装

  Microsoft Access Database Engine 2010 Redistributable

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D

  个人感觉如果系统office应该就不用再装驱动了。

  第二步 修改连接

  原来连接 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1"

  修改为:

  Provider=Microsoft.ACE.OLEDB.12.0;Data Source=1.xls;Extended Properties="Excel 12.0;HDR=YES;IMEX=1"

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档