net下excel(.xls)导入sqlserver
1、前台
<asp:FileUpload ID="FileUpload1" runat="server" Width="305px" /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导入SQL" /></td>
2、后台
引入空间:
using System.Data.Sql; using System.Data.SqlClient; using System.Data.OleDb; using System.IO;
绑定数据源:
string strConn = @"Data Source=me\SQLEXPRESS;Initial Catalog=table;Integrated Security=True"; //链接SQL数据库 /// <summary> /// 查询EXCEL电子表格添加到DATASET /// </summary> /// <param name="filenameurl">服务器路径</param> /// <param name="table">表名</param> public DataSet ExecleDs(string filenameurl, string table) { string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataSet ds = new DataSet(); OleDbDataAdapter odda = new OleDbDataAdapter("select * from [工作表名$]", conn); odda.Fill(ds, table); return ds; } protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件 { Response.Write("<script>alert('请您选择Excel文件')</script> "); return;//当无文件时,返回 } string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名 if (IsXls != ".xls" ) { Response.Write("<script>alert('只可以选择Excel文件')</script>"); return;//当选择的不是Excel文件时,返回 } SqlConnection cn = new SqlConnection(strConn); cn.Open(); string filename = DateTime.Now.ToString("yyyymmddhhMMss") + FileUpload1.FileName; //获取Execle文件名 DateTime日期函数 string savePath = Server.MapPath(("~\\") + filename);//Server.MapPath 获得虚拟服务器相对路径 FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上 DataSet ds = ExecleDs(savePath, filename); //调用自定义方法 DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组 int rowsnum = ds.Tables[0].Rows.Count; if (rowsnum == 0) { Response.Write("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示 } else { for (int i = 0; i < dr.Length; i++) { string ID = dr[i]["ID"].ToString();//日期 excel列名【名称不能变,否则就会出错】 string Subject = dr[i]["Subject"].ToString();//编号 列名 以下类似 string VerID = dr[i]["VerID"].ToString(); string Ver = dr[i]["Ver"].ToString(); string sqlcheck = "select count(*) from zy_ver where ID='" + ID + "'And Point='" + Point + "'"; //检查是否存在 SqlCommand sqlcmd = new SqlCommand(sqlcheck, cn); int count = Convert.ToInt32(sqlcmd.ExecuteScalar()); if (count < 1) { string insertstr = "insert into zy_ver (ID,Subject,VerID,Ver) values('" + ID + "','" + Subject + "','" + VerID + "','" + Ver + "')"; SqlCommand cmd = new SqlCommand(insertstr, cn); try { cmd.ExecuteNonQuery(); } catch (MembershipCreateUserException ex) //捕捉异常 { Response.Write("<script>alert('导入内容:" + ex.Message + "')</script>"); } } else { Response.Write("<script>alert('内容重复!禁止导入');location='importexcel.aspx'</script></script> "); continue; } } Response.Write("<script>alert('Excle表导入成功!');location='importexcel.aspx'</script>"); } cn.Close(); }
浙公网安备 33010602011771号