使用Oledbconnection使用C#导入excel时出现异常

时间:2013-11-15 15:33:07

标签: c# excel import

对此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”提供程序未在本地计算机上注册。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

你上面遇到的问题很棘手,过去我自己也遇到过这个问题,通常意味着你需要安装特定版本的Microsoft Office实例。

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