首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c#抛出错误读取OleDbConnection中的xlsx文件

使用c#抛出错误读取OleDbConnection中的xlsx文件
EN

Stack Overflow用户
提问于 2013-09-03 13:31:08
回答 1查看 4K关注 0票数 2

我编写了一个控制台应用程序来使用xlsx在C#中读取OleDbConnection文件。它引发以下错误

未在本地计算机上注册Microsoft.ACE.OLEDB.12.0‘提供程序。

下面是我写的代码

代码语言:javascript
复制
string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Suganya\ColumnReport.xlsx;Extended Properties=Excel 12.0;";
OleDbConnection objConn = new OleDbConnection();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
objConn = new OleDbConnection(connString);

string Query = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmd = new OleDbCommand(Query, objConn);

DataTable Table = new DataTable();
dataAdapter.SelectCommand = objCmd;
dataAdapter.Fill(Table);

为了解决这个问题,我已经做了以下工作。

  1. 我已经安装了AccessDatabaseEngine.exe (32位),并发现ACEOLEDB.dll存在于下面的路径C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14
  2. 尝试在应用程序中引用ACEOLEDB.dll。但它给了我以下错误 不能添加对“ACEOLEDB.DLL”的引用。请确保文件是可访问的,并且它是有效的程序集或COM组件。

  1. 控制台应用的配置平台为32位。

环境细节

  1. Windows 2008 (64位)
  2. 2010 ( 32位)
  3. MS office未安装

检查了以下链接以修复该问题

1.http://www.codeproject.com/Questions/486549/Theplus-27Microsoft-ACE-Oledb-12-0-27plusproviderp 2.http://www.codeproject.com/Questions/337953/The-Microsoft-ACE-OLEDB-12-0-provider-is-not-regis

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2013-09-03 13:51:16

您必须安装Microsoft;Office安装过程将在GAC中复制和注册所需的程序集(“ACEOLEDB.DLL”),或者您可以将丢失的程序集添加到bin (应用程序)目录中,也可以自己重新设置它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18593665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档