专栏首页跟着阿笨一起玩NETasp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"

 笔者在项目中做做了一个从Excel表格中导入数据的模块、大体上asp.net项目中导入Excel大体分成三类:

1)采用c#内置方案System.Data.OleDb(限制较小, 通用)

2)采用Excel的COM组件(会有版本问题)

3)采用伪Excel文件、即使用文本流的方式根据需求自己定义数据格式。同时在服务端进行反格式化

笔者采用的是方案一、相关联开发环境如下:

Windows 7(x64)

Visual Studio 2010

方案中使用的代码:

public sealed class ExcelHelper
{
        private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;";

        public static DataSet ExcelDataSource(string filePath, string sheetName)
        {
            OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetName + "$]", string.Format(CONNECTION_STRING,filePath));
            DataSet ds = new DataSet();
            oada.Fill(ds);
            return ds;
        }

        public static List<string> ExcelSheetName(string filePath)
        {
            List<string> list = new List<string>();
             
            OleDbConnection conn = new OleDbConnection(string.Format(CONNECTION_STRING, filePath));
            conn.Open();
            DataTable sheetNames = conn.GetOleDbSchemaTable
            (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            conn.Close();
            foreach (DataRow dr in sheetNames.Rows)
            {
                list.Add((string)dr[2]);
            }
            return list;
}

程序在执行时会抛出:

异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

分析原因:

用于 Access 和 Excel 数据库的 Microsoft OLE DB Provider for Jet 在 64 位版本中不可用。

最终解决办法:

在IIS中启用32位应该程序、设置见图。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DataTable.AcceptChanges & DataAdapter.Update

    The AcceptChanges method makes rows status to Unchanged, then the DataAdapter.Up...

    跟着阿笨一起玩NET
  • C#中char[]与string之间的转换;byte[]与string之间的转化

    跟着阿笨一起玩NET
  • Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据

    转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html

    跟着阿笨一起玩NET
  • 李飞飞新论文「AI医生」诊断抑郁症,准确率超过80%,可移植到手机端

    我们时有听到名人患抑郁症甚至严重到自杀的消息,却不知周围一些普通人身在病中不知病。

    量子位
  • 李飞飞新论文「AI医生」诊断抑郁症,准确率超过80%,可移植到手机端

    我们时有听到名人患抑郁症甚至严重到自杀的消息,却不知周围一些普通人身在病中不知病。

    量子位
  • 逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.n...

    逸鹏
  • csharp代码每日一例:使用NPOI DLL 将Datatable数据导出为Excel文件

    程序你好
  • 蓝牙协议曝 8 个严重安全漏洞,可能影响 53 亿有蓝牙功能的设备

    如果你在使用具有蓝牙功能的设备,不管是智能手机、笔记本电脑,还是智能电视、智能汽车或者其他 IoT 设备,都要小心了。最近研究人员发现蓝牙协议中有 8 个 0-...

    FB客服
  • 漫画:如何在数组中找到和为 “特定值” 的三个数?

    前一段时间,我们介绍了LeetCode上面的一个经典算法题【两数之和问题】。 这一次,我们把问题做一下扩展,尝试在数组中找到和为“特定值”的三个数。 题目的具...

    腾讯NEXT学位
  • system表空间不足的问题分析(r6笔记第66天)

    很多事情见多了也就有了麻木的感觉,报警短信就是如此,每天总能收到不少的报警短信,可能很多时候就扫一眼,如果没有严重的问题自己是不会情愿打开电脑处理的。 对于此,...

    jeanron100

扫码关注云+社区

领取腾讯云代金券