zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Asp.net中把Excel数据存储至SQLServer中的具体实现方法

2023-06-13 09:15:01 时间

ExcelWrapper

复制代码代码如下:

       ///<summary>
       ///查询EXCEL电子表格添加到DATASET
       ///</summary>
       ///<paramname="filenameurl">文件路径</param>
       ///<paramname="table">dataset中的表名(并不是要和数据库中的表一样)</param>
       ///<returns></returns>
       publicstaticDataSetExecleDs(stringfilenameurl,stringtable)
       {
           stringstrConn="Provider=Microsoft.Jet.OleDb.4.0;"

                                        +"datasource="+filenameurl+";ExtendedProperties="Excel8.0;HDR=YES;IMEX=1"";
           OleDbConnectionconn=newOleDbConnection(strConn);
           conn.Open();
           DataSetds=newDataSet();
           OleDbDataAdapterodda=newOleDbDataAdapter("select*from[Sheet1$]",conn);
           odda.Fill(ds,table);
           returnds;
       }

.cs

复制代码代码如下:

      //提交按钮
       protectedvoidimgbtnSubmit_Click(objectsender,ImageClickEventArgse)
       {
           try
           {
               if(!FileUpload1.HasFile)
               {
                   JsHelper.Alert("请您选择Excel文件",this);
                   return;
               }

               //取得文件后缀名
               stringextension=System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
               if(extension!=".xls"&&extension!=".xlsx")
               {
                   JsHelper.Alert("只可以选择Excel文件",this);
                   return;
               }

               // 构造Exel存在服务器相对路径的文件名,并SaveAs将上传的文件内容保存在服务器上
               stringfilename=DateTime.Now.ToString("yyyymmddhhMMss")+FileUpload1.FileName;
               stringsavePath=Server.MapPath(("~\\upfiles\\")+filename);
               FileUpload1.SaveAs(savePath);

               DataSetds=ExcelWrapper.ExecleDs(savePath,filename);
               DataRow[]dr=ds.Tables[0].Select();
               introwsnum=ds.Tables[0].Rows.Count;
               List<String>lstMsg=newList<string>();
               if(rowsnum==0)
               {
                   JsHelper.Alert("Excel表为空表,无数据",this);
               }
               else
               {
                   for(inti=0;i<dr.Length;i++)
                   {
                       Stringerror="";

                       //excel列名不能变
                       stringnum=dr[i]["学号"].ToString();
                       stringname=dr[i]["姓名"].ToString();
                       stringpwd=dr[i]["密码"].ToString();
                       stringcollegeNum=dr[i]["学院编号"].ToString();
                       stringbirth=dr[i]["生日"].ToString();

                       if(!BLL.M_CollegeBLL.GetAllCollegeNum().Contains(collegeNum))
                       {
                           error+="所属学院不存 ";
                       }

                       if(String.IsNullOrEmpty(collegeNum))
                       {
                           error+="请选择该学生所在院系 ";
                       }

                       if(String.IsNullOrEmpty(num))
                       {
                           error+="学号不能为空 ";
                       }
                       elseif(!Utility.IsLetterThanSomeLength(num,25))
                       {
                           error+="学号的长度过长 ";
                       }

                       if(String.IsNullOrEmpty(name))
                       {
                           error+="姓名不能为空 ";
                       }
                       elseif(!Utility.IsLetterThanSomeLength(name,25))
                       {
                           error+="姓名的长度过长 ";
                       }

                        if(String.IsNullOrEmpty(birth))
                       {
                           error+="出生日期不能为空 ";
                       }
                       elseif(!Utility.IsDateTime(birth))
                       {
                           error+="出生日期格式不正确 ";
                       }
                       if(String.IsNullOrEmpty(sex))
                       {
                           error+="性别不能为空 ";
                       }
                       if(String.IsNullOrEmpty(error))
                       {
                           M_Studentstu=newM_Student();
                           stu.Num=num;
                           stu.Name=name;
                           stu.Pwd=pwd;
                           stu.CollegeNum=collegeNum;
                           stu.Birthday=Convert.ToDateTime(birth);

                           //该学号不存在
                           if(!BLL.M_StudentBLL.GetAllStuNum().Contains(num))
                           {
                               BLL.M_StudentBLL.Add(stu);
                           }
                           else
                           {
                               BLL.M_StudentBLL.Modify(stu);
                           }
                       }
                       else
                       {
                           lstMsg.Add("学号为"+num+"未导入成功,"+"原因:"+error+"。");
                       }
                   }
               }
               this.lblHint.Text="导入完成。";
               if(null!=lstMsg)
               {
                   this.lblHint.Text+="共有"+lstMsg.Count()+"条记录未成功。<br/><br/>";
                   foreach(stringsinlstMsg)
                   {
                       this.lblHint.Text+=s;
                   }
               }
           }
           catch
           {
               this.lblHint.Text="程序出错,请您检查需要导入的表!";
           }
       }


效果图