在Windows Server2008R2中导入Excel不能使用Jet 4.0的解决方法
一直使用以下代码从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的解决方法的更多相关文章
- 解决Windows Server2008R2中导入Excel不能使用Jet 4.0
操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0 原读取Excel文件代码为: string strConn = st ...
- Windows Server2008R2中导入Excel
使用Microsoft.ACE.OLEDB对Excel进行操作: string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + & ...
- ssms导入excel数据提示未安装插件的解决方法
今天用ssms导入excel的时候,提示 然后去找了一下解决方案,安装了相对应的插件.但是还是会提示这个问题. 又去找了一下原因,找到一个原因是sqlserver启动的时候是32位的,但是导入需要64 ...
- Excel公式的常见错误值及其解决方法
Excel公式的常见错误值及其解决方法 经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:# N/A!.#VALUE!.#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结 ...
- 关于真机调试DDMS中的data文件夹打不开的解决方法
关于真机调试DDMS中的data文件夹打不开的解决方法 今天在开发的时候需要导出程序中的数据库文件查看数据,数据库文件默认就在/data/data/应用包名/databases/数据库名 这个路径下, ...
- Node.js中针对中文的查找和替换无效的解决方法
Node.js中针对中文的查找和替换无效的解决方法. //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 ta ...
- SecureCRT中某些命令提示符下按Backspace显示^H的解决方法
SecureCRT中某些命令提示符下按Backspace显示^H的解决方法 安装了Apache Derby数据库服务器之后,使用ij客户端去连接derby服务端,可是在ij中输入命令的时候,每当输入错 ...
- 向SQL Server中导入Excel的数据
1. 手动界面导入Excel数据 同 https://jingyan.baidu.com/article/ce09321b9a0e252bff858ff9.html 首先打开并登陆sql serve ...
- oracle数据库中导入Excel表格中的数据
1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...
随机推荐
- JS 原型链学习总结
废话篇: 在js的学习过程中有一大难点就是原型链.学习的时候一直对这一内容不是十分的明白.纠结的我简直难受.,幸好总算给他弄通了,哇咔咔,总算可以不用在睡梦中还想着他了. 正文篇: 要了解原型链我们首 ...
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
错误代码如下: 严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFException ...
- CSS之弧形阴影
简述 网页上经常会出现一些弧形的阴影效果,看起来很漂亮,下面我们来讲述下如何用CSS来实现一个弧形阴影. 简述 阴影 效果 注释 标题 效果 源码 合并 效果 源码 阴影 效果 首先实现一个简单的阴影 ...
- singleton单例模式
单例设计模式 单例设计模式概述 单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供 优点: 在系统内存中只存在一个对象,因此可以解决系统资源,对于一些需要频繁 ...
- BZOJ 1589 采集糖果
23333怎么调了一晚上.... #include<iostream> #include<cstdio> #include<cstring> #include< ...
- valueOf intValue parsetInt区别
1.int intValue() 以 int 类型返回该 Integer 的值. Long l = 123; l.intValue() ---->int : 123 2.static int p ...
- 学习macos常用的一些快捷键笔记
学习mac 操作系统使用笔记 Dock功能学习 类似快捷图标一样 Command+q quit a program Dock上添加与删除都用拖动 command+delete 删除文件 shift+c ...
- NSThread小笔记
接口 Initializing an NSThread Object – init – initWithTarget:selector:object: Starting a Thread + deta ...
- hadoop完全分布式模式的安装和配置
本文是将三台电脑用路由器搭建本地局域网,系统为centos6.5,已经实验验证,搭建成功. 一.设置静态IP&修改主机名&关闭防火墙(all-root)(对三台电脑都需要进行操作) 0 ...
- jQuery基础知识--Form基础(续)
下拉框应用 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...