数据库

错误:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0

字号+ 作者:hanyufeng 来源: 2015-08-20 19:28:39 我要评论( ) 阅读:

Win7 64位、VS2013(Update 4),已安装Access 2007;读取Excel文件时报错:未在本地计算机上注册“Microsoft Ace OleDb 12 0”提供程序...

开发环境:Win7 64位、VS2013(Update 4),已安装Access 2007。

问题描述:读取Excel文件时报错:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序。

代码:运行至第7行时报错(Conn.Open();语句)。

public static DataTable 读取xlsx文件(string 文件路径, string 工作簿名称)
{
    string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + 文件路径 + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";

    System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strConn);
    string strCom = "SELECT * FROM [" + 工作簿名称 + "$]";
    Conn.Open();
    System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
    DataSet ds = new DataSet();

    myCommand.Fill(ds, "[" + 工作簿名称 + "]");

    Conn.Close();
    return ds.Tables[0];
}

解决方法:修改项目属性,在“生成”选项卡中设置目标平台为“x86”。

 

说明:如果是未安装Access时报错,可以先下载AccessDatabaseEngine,安装后再试,仍有问题再修改上述项目属性。

下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。