【问题标题】:Exception in Importing excel using C# using Oledbconnection使用 Oledbconnection 使用 C# 导入 excel 时出现异常
【发布时间】:2013-11-29 01:22:08
【问题描述】:

关于这个Diagnosing an OLEDB exception when Quering Excel 2010有讨论

但我的问题是,如果我们不允许在托管网站的 IIS 服务器中安装 ACE 组件;我们如何避免这个错误?有没有其他方法可以将excel导入SQL数据库?

我正在使用下面的连接字符串,并且在本地运行良好,但在部署后不能在 IIS 服务器中运行。

excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path +
                                                     ";Extended Properties=\"HDR=YES;\";Jet OLEDB:Engine Type=37";

错误:System.InvalidOperationException:“Microsoft.Jet.OLEDB.12.0”提供程序未在本地计算机上注册。

【问题讨论】:

    标签: c# excel import


    【解决方案1】:

    我建议你看看http://linqtocsv.codeplex.com/

    使用此方法,您可以将 excel 文件读入 C# 对象,验证它们,然后将它们提交到 SQL 数据库。

    您遇到的问题是一个棘手的问题,我过去也遇到过,这通常意味着您需要安装特定版本的 Microsoft Office 实例。

    我们有一些用户在 Office 2003 上运行,但他们无法使用我们的系统,因为他们需要在该机器上安装更高版本的 Microsoft Jet Engine。

    【讨论】:

      【解决方案2】:

      这是因为您将应用程序编译为 X64 位,请使用以下设置强制它以 32 位 (x86) 运行:

      ->Right click on Project
      ->Select Properties
      ->Goto Build Options
      ->Change  "Platform Target" from "ANY CPU" to "X86"
      

      【讨论】:

      • 您可以将属性设置为上面提到的Sudhakar。你也可以在这里参考类似的答案stackoverflow.com/questions/11179905/…
      • 当我从“ANY CPU”更改为 X86 时,我遇到了另一个错误。错误:System.BadImageFormatException:无法加载文件或程序集“Webtool”或其依赖项之一。试图加载格式不正确的程序。我正在开发的本地机器是 32 位的。部署 IIS 服务器是 64 位的。当我更改为 64 位时,我收到相同的错误“System.InvalidOperationException:'Microsoft.Jet.OLEDB.12.0' 提供程序未在本地计算机上注册。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多