错误:“未在本地计算机上注册“microsoft.ACE.oledb.12.0”

C#通过OleDb访问Excel 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。网上查询得知需要下载安装Microsoft Access 2010 数据库引擎可再发行程序包。下载地址为:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255。

支持的操作系统

Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, Windows XP Service Pack 2

      只有 32 位 Access 数据库引擎可在 Windows XP Service Pack 3 上使用

使用场景:

  1. 如果使用 OLEDB 的应用程序,将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”。

    如果连接到 Microsoft Office Excel 数据,根据 Excel 文件类型添加相应的 OLEDB 连接字符串扩展属性:

    文件类型(扩展名)                                             扩展属性
    ---------------------------------------------------------------------------------------------
    Excel 97-2003 工作簿 (.xls)                                  “Excel 8.0”
    Excel 2007-2010 工作簿 (.xlsx)                             “Excel 12.0 Xml”
    启用宏的 Excel 2007-2010 工作簿 (.xlsm)     “Excel 12.0 宏”
    Excel 2007-2010 非 XML 二进制工作簿 (.xlsb)     “Excel 12.0”

  2. 如果您是使用 ODBC 连接到 Microsoft Office Access 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
  3. 如果您是使用 ODBC 连接到 Microsoft Office Excel 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”

一个测例子:

 1  public static DataTable GetData(string fileName)
 2         {
 3             if (!File.Exists(fileName)) return null;
 4             //string connStr = string.Format(@"Provider=MMicrosoft.ACE.OLEDB.12.0;data source=‘{0}‘;Extended Properties=‘Excel 8.0;HDR=YES;IMEX=1‘;", fileName);
 5             string connStr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;data source=‘{0}‘;Extended Properties=‘Excel 12.0;HDR=YES;IMEX=1‘;", fileName);
 6             using (OleDbConnection conn = new OleDbConnection(connStr))
 7             {
 8
 9                 try
10                 {
11                     conn.Open();
12                     DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
13                     var tableName = dt.Rows[0][2].ToString().Trim();
14                     string cmdTxt = string.Format("select * from [{0}]", tableName);
15
16                 //    Trace.Write("查询表:" + cmdTxt);
17                     OleDbDataAdapter da = new OleDbDataAdapter(cmdTxt, conn);
18                     DataSet ds = new DataSet();
19                     da.Fill(ds);
20                     return ds.Tables[0];
21                 }
22                 catch (Exception e)
23                 {
24
25                   //  Trace.WriteLine("GetData错误: " + e.Message);
26                     return null;
27                 }
28                 finally
29                 {
30                     conn.Close();
31                 }
32             }
33         }
时间: 2024-10-25 20:23:02

错误:“未在本地计算机上注册“microsoft.ACE.oledb.12.0”的相关文章

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载.然后安装就行了. 本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈

未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序。

场景:在用excel 导入的时候页面出现"未在本地计算机上注册"Microsoft.Ace.OleDb.12.0"提供程序."的错误 最终验证解决方案如下: iis设置解决方案  选择 该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true 或 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1

c#操作Excel时,抛出异常:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

我们开发环境下,使用excel导入数据到数据库中,编译的软件起初是x86 方式,起初并未发现什么问题,一切很正常: 程序该进的过程: 后来导入文件一次就要读取几百G的数据导入数据库中,使用编译的X86程序就不正常了,尽管我解析文件(.xml)方式从数据流改用XmlTextReader,但还是会跑出内存溢出(“System.OutofMemoryException”多么痛苦,悲剧,无奈呀),后来同事建议我将程序编译x64后问题真正的解决了(我们开发机时64G内存,呵呵.) 程序改进后问题内存溢出问

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

最近做了一个上位机项目,遇见了很多问题点,一直没有时间总结.现在项目告一段落,上来总结一下,都是通过网络查找资料解决的.再次感谢那些前辈,再次做一下记录,方便同行参考,也方便自己以后查看. 界面如下: 一:问题点,做用户登录时出现:""未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序"" 的弹框报错. 下面是代码 using System; using System.Collections.Generic; using System.

在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

错误提示: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的解决方案: 此程序,为Office 2007 Access的相关组件. 下载并安装AccessDatabaseEngine.exe软件,Download Link.

未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序解决办法

错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载.然后安装就行了. 本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错. 未在本地计算机上注册“microsoft.ACE.ol

win10:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

说明:C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决办法: 1.下载对应组件安装:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255 注意:要选择AccessDatabaseEngine.exe,而不是AccessDatabaseEngine64.exe,否则还会提示错误!!! 2.控制面

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载. 以前的版本: http://www.microsoft.com/zh-CN/download/confirmation.aspx?id=23734

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

最近用MVC3 做了一个项目,发布时项目的中的数据导入功能(Excel格式,有固定的导入数据模板)居然不能用,查看报错日志,发现是“System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序............”. 在网上找一些资料,把问题解决了.如下图所示. 后台功能代码:导入与导出实现代码. 1 #region -使用IO写入Excel- 2 /// <summary> 3 /// 使用IO写入E