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