【问题标题】:Error in OleDbConnection.Open() when trying to read Excel XLSB尝试读取 Excel XLSB 时 OleDbConnection.Open() 出错
【发布时间】:2015-09-27 18:08:15
【问题描述】:

我正在使用带有 MVC 3 Razor 的 Visual Studio 2013。我能够上传和保存 XLSB 文件,我正在尝试从上传的 XLSB 中读取数据。我有以下连接字符串和初始化 OleDbConnection 的方法:

strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 8.0;HDR=True'";
OleDbConnection connExcel = new OleDbConnection(strConStr);

错误发生在 connExcel.Open()。以下是错误信息:

System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的异常,但用户代码中未处理

附加信息:此文件是在 Excel 2007 的早期 beta 版本中创建的。在 Access 2007 中打开文件之前,请先使用 Excel 2007 打开文件以将其保存为最新版本的 Excel 2007 文件格式。

我的 PC 中安装了 AccessDatabaseEngine。在我的控制面板中,我有以下安装的引擎信息:

名称:Microsoft Office Access 数据库引擎 2007(英文) ,大小:19.2 MB ,版本:12.0.4518.1031

我不确定这是否是读取 XLSB 文件的正确版本。顺便说一下,我的电脑是 x64 位的。

我的同事也在他的 PC 上安装了相同类型的 Microsoft Office Access 数据库引擎 2007,但他的版本是“12.0.66XX”,代码在他这边运行良好。

如果我需要安装其他版本的 Access 数据库引擎或任何其他方式来解决此错误,请告诉我。

【问题讨论】:

    标签: excel model-view-controller oledbconnection


    【解决方案1】:

    经过长期的研究和研究,我能够解决这个问题。

    除了已经安装在我的机器上的 Microsoft Office Access 数据库引擎 2007,我还下载并安装了Microsoft Access Database Engine 2010 Redistributable

    之后,我需要下载Microsoft Office Access Runtime and Data Connectivity 2007 Service Pack 2 (SP2)进行安装,然后重启我的机器。

    之后一切都像魔术一样工作。

    这是我的工作连接字符串:

    strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 12.0;HDR=True'";
    

    【讨论】:

      猜你喜欢
      • 2020-02-07
      • 1970-01-01
      • 2015-09-22
      • 2018-07-15
      • 2020-12-30
      • 2015-03-26
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多