一直使用以下代码从Excel中取数据,速度快方便:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" +  strFileName + ";" + "Extended Properties=Excel 8.0;";
OleDbDataAdapter
ExcelDA = new OleDbDataAdapter("SELECT * FROM [" + strSheet + "$]",
strConn);

DataSet dstExcel = new DataSet();
ExcelDA.Fill(dstExcel, "ExcelInfo");

但这次发布到windows 2008
R2上后却报错。上网查询后得知IIS7会支持一部分32位DLL,但对于与底层绑定较深的组件却不支持。Jet 4.0显示属于后一种组件。微软已经不支持Jet
4.0的升级,所以目前没有,今后也不会再出现Jet 4.0的64位版本。

基于此网上大部分的解决方案是将应用程序池的Enable 32 bit选项设为True(如下图所示)。这种方案的确可以解决问题,但有以下隐患:

1.今后的发展方向肯定是64位,使用这种方式只是临时解决了问题,治标不治本。

2.在我们系统中还用到了Oracle Client, SAP Connector等仍旧需要64位

3.MOSS系统中也可能会用到类似的功能,不可以降到32位

鉴于以上问题,我开始查找替代方案,终于查到也可以使用Microsoft.ACE.OLEDB对Excel进行操作。修改后的脚本如下:

string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source="+ 
strFileName + ";" + "Extended Properties='Excel
12.0;HDR=YES'";
OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT *
FROM [" + strSheet + "$]", strConn);

DataSet dstExcel = new DataSet();
ExcelDA.Fill(dstExcel, "ExcelInfo");

注意'Excel 12.0;HDR=YES'处的单引号不能少。

还需注意需安装64位的2007 Office System Driver: Data Connectivity Components

http://www.microsoft.com/download/en/details.aspx?id=13255

在Windows Server2008R2中导入Excel不能使用Jet 4.0的解决方法的更多相关文章

  1. 解决Windows Server2008R2中导入Excel不能使用Jet 4.0

    操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0 原读取Excel文件代码为: string strConn = st ...

  2. Windows Server2008R2中导入Excel

    使用Microsoft.ACE.OLEDB对Excel进行操作: string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + & ...

  3. ssms导入excel数据提示未安装插件的解决方法

    今天用ssms导入excel的时候,提示 然后去找了一下解决方案,安装了相对应的插件.但是还是会提示这个问题. 又去找了一下原因,找到一个原因是sqlserver启动的时候是32位的,但是导入需要64 ...

  4. Excel公式的常见错误值及其解决方法

    Excel公式的常见错误值及其解决方法 经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:# N/A!.#VALUE!.#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结 ...

  5. 关于真机调试DDMS中的data文件夹打不开的解决方法

    关于真机调试DDMS中的data文件夹打不开的解决方法 今天在开发的时候需要导出程序中的数据库文件查看数据,数据库文件默认就在/data/data/应用包名/databases/数据库名 这个路径下, ...

  6. Node.js中针对中文的查找和替换无效的解决方法

    Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 ta ...

  7. SecureCRT中某些命令提示符下按Backspace显示^H的解决方法

    SecureCRT中某些命令提示符下按Backspace显示^H的解决方法 安装了Apache Derby数据库服务器之后,使用ij客户端去连接derby服务端,可是在ij中输入命令的时候,每当输入错 ...

  8. 向SQL Server中导入Excel的数据

    1.  手动界面导入Excel数据 同 https://jingyan.baidu.com/article/ce09321b9a0e252bff858ff9.html 首先打开并登陆sql serve ...

  9. oracle数据库中导入Excel表格中的数据

    1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...

随机推荐

  1. CreateCompatibleDC与CreateCompatibleBitmap

    函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC). 函数原型:HDC CreateCompatibleDC(HDC hdc): 参数: hdc:现有设备上下文环境的句柄,如果该句柄为 ...

  2. getHitRect获取点击控件的位置

    public  void getHitRect(Rect outRect)                   Added in API level 1 Hit rectangle in parent ...

  3. Android中的Drawable资源

    在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\r ...

  4. 【同行说技术】Android图片处理技术资料汇总(一)

    对于Android开发的童鞋们来说,图片处理时或多或少都会遇到令人头疼和不满意的问题,今天小编收集了5篇Android图片处理的干货文章,一起来看看吧! 一.Android 高清加载巨图方案 拒绝压缩 ...

  5. 基于核方法的模糊C均值聚类

    摘要: 本文主要针对于FCM算法在很大程度上局限于处理球星星团数据的不足,引入了核方法对算法进行优化.  与许多聚类算法一样,FCM选择欧氏距离作为样本点与相应聚类中心之间的非相似性指标,致使算法趋向 ...

  6. 【英语】Bingo口语笔记(68) - come系列

  7. 《C和指针》读书笔记 第3章-数据

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936488.html

  8. [转]几个开源的.net界面控件

    转自原文 几个不错的开源的.net界面控件,介绍几个自己觉得不错的几个开源的.net界面控件. DockPanel Suite:开发类似VS.net的界面,#Develop就是使用的这个控件. 网址: ...

  9. nginx爆出新漏洞 最低限度可造成DDos攻击

    5月9日消息:国内某安全厂商称HTTP代理服务器nginx爆出远程栈缓冲区溢出漏洞,攻击者利用此漏洞可能造成栈溢出,从而执行任意代码,最低限度可造成拒绝服务攻击.目前,官方已经发布安全公告以及相应补丁 ...

  10. hdu5248 序列变换

    百度之星的题.其实最简单的方法是二分答案,我竟然没想到,直接去想O(n)的去了,最后导致滚粗... 题意就是给一个数列,要求把它处理成递增序列. 首先我想到了O(n^2)的算法,然后再优化成O(n)过 ...