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


    操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0

    原读取Excel文件代码为:

    string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='{0}';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'", FilePath);
    OleDbDataAdapter ExcelDA = new OleDbDataAdapter(“SELECT * FROM [" + strSheet + "$]“, strConn);
    
    DataSet dstExcel = new DataSet();
    ExcelDA.Fill(dstExcel, “ExcelInfo”);

    在Windows Server2003上一切正常,64位服务器上就不正常了,查找资料说,可以把将应用程序池的Enable 32 bit选项设为True,但IIS的稳定性和兼容性不太好。

    但是实际操作中改应用池32位为True也不行。

    解决方法一:

    再查资料使用Microsoft.ACE.OLEDB对Excel进行操作。修改后的脚本如下:

    string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES'", FilePath);
    DataSet dstExcel = new DataSet();
    ExcelDA.Fill(dstExcel, “ExcelInfo”);
    
    注意’Excel 12.0;HDR=YES’处的单引号不能少。

    测试后发现,应用程序池的Enable 32 bit选项设为True加上这个链接方式就正常使用了。

    解决方法二:

    装一个“AccessDatabaseEngine_X64”驱动程序,就不用修改程序池选项,再使用“Microsoft.ACE.OLEDB”链接字符串。

    在我的程序中我判断了一下操作系统的位数,来自动切换相应的链接字符串。 

    Environment.Is64BitOperatingSystem
  • 相关阅读:
    淘宝返回顶部
    混合布局
    css布局使用定位和margin
    选项卡 js操作
    ul li 好友列表
    js添加删除元素
    下拉列表的简单操作
    python笔记
    kali linux 虚拟机网卡未启动
    python 重新安装pip(python2和python3共存以及pip共存)
  • 原文地址:https://www.cnblogs.com/coolsundy/p/5732749.html
Copyright © 2020-2023  润新知