错误描述:

在vs2010执行读取excel文件时,报错“未在本地计算机上注册“microsoft.ace.oledb.12.0”提供程序”

业务代码:

       //下面代码是基于窗体button来做的,如果使用需要转为控制台
private void btnopen_click(object sender, eventargs e) { dataset myds = new dataset(); openfiledialog openfiledialog1 = new openfiledialog(); openfiledialog1.filter = @"microsoft excel 2007 文件(*.xlsx)|*.xlsx|microsoft excel 97/2000/xp/2003 文件(*.xls)|*.xls";//打开2003或者2007excel文件 openfiledialog1.showdialog(); txt_path.text = openfiledialog1.filename; if (txt_path.text != "") { myds = getdataset(txt_path.text);//将excel数据读取并转换为dataset dgvdata.datasource = myds.tables[0];//将数据绑定到datagridview //int numb=5; int numb = this.dgvdata.rows.count; for (int i = 0; i < numb;i++ ) { combobox1.items.add(this.dgvdata.rows[i].cells[(0)].value); } }

报错原因:

没有安装数据访问组件,需要安装相应版本的数据访问组件(accessdatabaseengine

解决方法:

下载安装”microsoft access database engine redistributable“

根据自己vs2010的版本选择对应版本版本,可以通过任务管理器(ctrl+alt+delete)来查看vs版本

这里根据我电脑的配置(win10+vs2010(32bit))选择对应的版本