excel文件更新数据库
需要注意的是,在检索excel数据的时候,excel文件的第一行是不被检索的,所以excel的第一行要不空着,要不就写数据的标题 ,如:id 工号124 小王125 小李
上传的文件夹要有写入权限,即本例的 upload的属性里 ,有写入的权限
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e) { //将要更新的EXCEL文件上传到服务器上 string filenm=""; if(this.uploadfile.PostedFile.ContentLength!=0) { string fnm=this.uploadfile.Value; //string ftype=fnm.Substring(fnm.Length-4,4); string tmp=strsp(fnm); int t=tmp.IndexOf("//",1); string tmp2=tmp.Substring(0,t); filenm=DateTime.Now.ToString("yyyyMMddhhmmss")+"_"+Session["empID"].ToString()+"_"+strsp(tmp2); string filepath="..//Upload//"+filenm; ViewState["filepath"]=filepath; this.uploadfile.PostedFile.SaveAs(Server.MapPath(filepath)); //this.lb_info.Text="上传成功!!"; } else { Page.RegisterStartupScript("","<script language='javascript'>alert('更新失败!请检查后重新提交!');</script>"); }
//下面开始更新数据库数据 //string filePath = "C:/Inetpub/wwwroot/client_care/upload/"+filenm; string path = "../upload/"+filenm; string filePath = Server.MapPath(path); //建立连接 string mystring="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "+filePath+";Extended Properties=Excel 8.0"; OleDbConnection cnnxls = new OleDbConnection(mystring); //读取数据 OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [Sheet1$]",cnnxls); DataSet myDs =new DataSet(); //将数据放入dataset myDa.Fill(myDs); if(myDs.Tables[0].Rows.Count>0) { //测试 //this.lb_info.Text=myDs.Tables[0].Rows[0].ItemArray[0].ToString();
//如果出错 ,显示第二列的内容,即工号 string info="";
for(int i=0;i<myDs.Tables[0].Rows.Count;i++) { string id = myDs.Tables[0].Rows[i].ItemArray[0].ToString() ; string gonghao = myDs.Tables[0].Rows[i].ItemArray[1].ToString(); //调用在另一个文件里的类(others的uppdateExcel),进行数据的update //当然你可以在这里建立数据库的连接,进行数据update int num = others.updateExcel(id,gonghao); //判断是否更新成功,如果不成功,则记录错误工号 //由于此时只执行一条语句,所以成功则返回“1”,不成功则返回“0” if(num!=1) { info=info+gonghao+" "; } } if(info=="") { Page.RegisterStartupScript("","<script language='javascript'>alert('"+info+"提交失败,您只能更改本地区的客户经理!');</script>"); } else { Page.RegisterStartupScript("","<script language='javascript'>alert('提交成功!');</script>"); } } }