问题描述
异常详细信息:System.Data.OleDb.OleDbException:无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。代码如下!protectedvoidbtUpload_Click(objectsender,EventArgse){if(FileUpload1.PostedFile.FileName==""){Response.Write("<scriptlanguage=javascript>alert('请选择要上传的文件!');</script>");return;}else{stringpath=this.Server.MapPath("..\Upfile\")+FileUpload1.FileName;FileUpload1.PostedFile.SaveAs(path);FileUpload1.Dispose();stringstrCon;strCon="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecruityInfo=true;DataSource="+path+";userid=nw14134;JetOLEDB:Databasepassword=ccli2054;ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1;"";OleDbConnectionconn=newOleDbConnection(strCon);conn.Open();OleDbDataAdaptermyda=newOleDbDataAdapter("select*from[Sheet1$]",strCon);DataSetmyds=newDataSet();myda.Fill(myds);this.GridView2.DataSource=myds;this.GridView2.DataBind();conn.Close();System.IO.File.Delete(path);}
解决方案
解决方案二:
有个列子:privateDataSetCreateDataSource(){stringstrCon;str="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath("excel.Xls")+";ExtebdedProperties=Excel8.0;";OleDbConnectionolecon=newOleDbConnection(strCon);OleDbDaraAdaptermyda=newOleDbDaraAdapter("select*from[sheet1$]",strCon);DataSetmyds=newDataSet();myda.Fill(myds);returnmyds;}//按钮事件protectedviodButton1_Click(objectsender,EventArgse){GridView2.DataSource=CreateDataSource();GridView2.DataBind();}
一个一个敲的呀。。为了这分我不容易呀。。
解决方案三:
是这样的,如果有其他的程序打开了那个文件,就不能读取了,把excel关掉再读就可以了。
解决方案四:
DataTableExcel_UserInfo=newDataTable();stringstrConn=@"Provider=Microsoft.ACE.OLEDB.12.0;"+"DataSource="+fileInfo.FullName+";"+"ExtendedProperties="Excel12.0;HDR=YES;IMEX=1;"";stringstrExcel="select*from[sheet1$]";using(OleDbDataAdapteradaptor=newOleDbDataAdapter(strExcel,strConn)){DataSetds=newDataSet();adaptor.Fill(ds);Excel_UserInfo=ds.Tables[0];}
剩下绑定的靠自己了。。
解决方案五:
谢谢两位,我的代码有错吗,请指正!
解决方案六:
另外,我的代码,在本地OK传到服务器上才出这个问题
解决方案七:
服务器上有office组件吗?
解决方案八:
应该没有,是万网的服务器