zoukankan      html  css  js  c++  java
  • 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

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

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

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

     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"

  • 相关阅读:
    windows本地提权——2003笔记
    Windows与linux添加用户命令
    反弹shell集锦
    提权-特权升级
    常见端口
    git泄露利用脚本
    Thinkphp5命令执行利用
    Thinkphp2.1漏洞利用
    打ms15-034补丁出现“此更新 不适用于您的计算机”
    Hyda爆破
  • 原文地址:https://www.cnblogs.com/alannxu/p/12888489.html
Copyright © 2011-2022 走看看