excel文件更新数据库

来源:互联网 发布:服装人体尺寸测量数据 编辑:程序博客网 时间:2024/06/04 18:42

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>");
    }
   }
  }

原创粉丝点击