asp.net本地读取excel正确。但在iis服务器上就报错 未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序
2013-12-27 16:17
645 查看
本地vs2010可以上传ecxel文件。并读取数据,但部署到本地IIS。并访问。则提示: 未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序
首先:确保安装了Microsoft.ACE.OLEDB.12.0驱动 下载地址:http://pan.baidu.com/s/1moWje
其次。如果你跟我一样。本地vs2010测试成功。但在本地iis访问就报错(未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序)
那你可以在你的iis中修该(win7电脑:应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true )
当然如果你项目部署到外网了。服务器一般都是windows 2003 本地你也要安装Microsoft.ACE.OLEDB.12.0驱动。如果还是报错
则你要修改: 将IIS应用程序池里的预定义账户改为本地系统
这样设置后。应该就没什么问题了
最后附上读取excel文件的代码
http://windowsclient.net/
首先:确保安装了Microsoft.ACE.OLEDB.12.0驱动 下载地址:http://pan.baidu.com/s/1moWje
其次。如果你跟我一样。本地vs2010测试成功。但在本地iis访问就报错(未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序)
那你可以在你的iis中修该(win7电脑:应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true )
当然如果你项目部署到外网了。服务器一般都是windows 2003 本地你也要安装Microsoft.ACE.OLEDB.12.0驱动。如果还是报错
则你要修改: 将IIS应用程序池里的预定义账户改为本地系统
这样设置后。应该就没什么问题了
最后附上读取excel文件的代码
/// <summary> /// 获取Excel /// </summary> /// <param name="fileName">读取的文件路径</param> /// <returns></returns> private DataTable getTable(string fileName) { try { //判断文件是否存在 if (!File.Exists(fileName)) { Response.Write("<script>alert('文件不存在,请重新上传。');</script>"); return null; } DataSet ds = new DataSet(); OleDbConnection objConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0;IMEX=1'"); //Excel 8.0;HDR=NO;IMEX=1中的IMEX=0; objConn.Open(); DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1 //string queryField = "型号,品牌,封装,年份,包装,数量,单价,订货周期,备注"; //string strSql = "select " + queryField + " from [" + tableName + "]"; string strSql = "select * from [" + tableName + "]"; //string strSql = "select * from [" + tableName + "]"; OleDbCommand objCmd = new OleDbCommand(strSql, objConn); OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); myData.Fill(ds, tableName);//填充数据 return ds.Tables[0]; } catch (Exception ex) { //获取文件名 string fName = fileName.Substring(fileName.LastIndexOf("\\") + 1); //MessageBox.Show(ex.Message); return null; } }
http://windowsclient.net/
相关文章推荐
- ASP.NET excel 导入数据库 出现 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序问题的解决
- 执行asp.net上传下载Excel时出现“未在本地计算机上注册“Microsoft.ACE.Oledb.12.0”提供程序。(System.Data)”错误
- IIS下解析Excel文档“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”问题
- 从Excel中导入数据时,提示未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"
- 在本地调试正常但是在iis上提示(未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序)
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"
- 访问Excel 2007出错,未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
- EXCEL文件导入时报_未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序
- c#操作Excel时,抛出异常:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
- 未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序
- 未在本地计算机上注册“microsoft.ace.oledb.12.0”提供程序
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序搜索
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法