你的位置:首页 > ASP.net教程

[ASP.net教程]解决方法of未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序


在开发的一个报表转换功能涉及到Excel97-2003(.xls)文件的导入。使用oledb来读取excel数据。代码为:

public static DataSet LoadDataFromExcel(string filePath, string[] sheetNames){  string strConn;  // strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filePath + ";Extended Properties=Excel 8.0";   //strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 //这是2010的链接字符串,不同版本链接不同  strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";  OleDbConnection OleConn = new OleDbConnection(strConn);  OleConn.Open();  DataSet OleDsExcle = new DataSet();  foreach (string name in sheetNames)  {    string sql = "SELECT * FROM [" + name + "$]";    OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);    OleDaExcel.Fill(OleDsExcle, name);  }  OleConn.Close();  return OleDsExcle;}

我使用的IDE是vs2013,OS是win7 64位,调试程序时报异常:

“System.InvalidOperationException”类型的未经处理的异常在 System.Data.dll 中发生

其他信息: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

 

解决方法为:

在项目属性的“生成“里,将目标平台由默认的Any CPU改为x86