当前位置: 代码迷 >> ASP.NET >> 将excel文件写入数据库中
  详细解决方案

将excel文件写入数据库中

热度:7820   发布时间:2013-02-25 00:00:00.0
求助将excel文件写入数据库中
我在开发一个网站,其中要用到上传下载功能。
这个功能我准备把上传的附件(主要是excel文件)直接用流写入到数据库中。想请教下,具体的代码。

------解决方案--------------------------------------------------------
我这有直接将excel中的数据批量导入数据库的例子(你可以参考一下):地址
------解决方案--------------------------------------------------------
数据库中直接存路径不行吗?
------解决方案--------------------------------------------------------
C# code
net Excel数据导入到数据库.net Excel数据导入到数据库一.数据库向导本来就可以这样导入,在Excel建的字段,必须在table表中也得有字段.二.读取excel文件中的数据先在类中定义一个方法名为ExecleDs的方法,用于将Excel表里的数据填充到DataSet中,代码如下: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);                     OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]",conn);              DataSet ds = new DataSet();              odda.Fill(ds,table);                   return ds;          }当点击添加按钮时激发事件,代码如下protected void Button1_Click(object sender, EventArgs e)  {       if (FileUpload1.HasFile == false)      {            Response.Write("<script>alert('请您选择Excel文件')</script> ");           return;//当无文件时,返回        }       string IsXls=System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();        if (IsXls != ".xls")      {            Response.Write("<script>alert('只可以选择Excel文件')</script>");          return;//当选择的不是Excel文件时,返回        }       string error = null;       Access.Class1 ac = new Access.Class1();       SqlConnection cn = ac.myConnection();        cn.Open();       string strpath = FileUpload1.PostedFile.FileName.ToString();   //获取Execle文件路径       string filename = FileUpload1.FileName;                       //获取Execle文件名         DataSet ds = ac.ExecleDs(strpath,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 YHMC = dr[i]["YongHuMingCheng"].ToString();            string YHMM = dr[i]["YongHuMiMa"].ToString();                string DQRQ = dr[i]["DaoQiRiQi"].ToString();              string ZT = dr[i]["ZhuangTai"].ToString();                string TJSJ = dr[i]["TianJiaShiJian"].ToString();               string JXDM = dr[i]["JiaXiaoDaiMa"].ToString();               string sqlcheck = "select count(*) from DC_YongHuLieBiao where YongHuMingCheng='" + YHMC + "'And JiaXiaoDaiMa='" + JXDM + "'";  //检查用户是否存在                bool ch = ac.check(sqlcheck);                if (ch == true)              {                   string insertstr = "insert into DC_YongHuLieBiao(YongHuMingCheng,YongHuMiMa,DaoQiRiQi,ZhuangTai,TianJiaShiJian,JiaXiaoDaiMa) values('" +                                         YHMC + "','" + YHMM + "','" + DQRQ + "','" + ZT + "','" + TJSJ + "','" + JXDM + "')";                    SqlCommand cmd = new SqlCommand(insertstr,cn);              try                  {                     cmd.ExecuteNonQuery();                    }     catch (MembershipCreateUserException ex)       //捕捉异常                    {                        Response.Write("<script>alert('创建用户:"+ex.Message+"')</script>");                    }              }              else             {                    error += "<em style='color:red;font-sixe:25px'>"+YHMC+"</em>用户已存在,此行记录无法插入!请修改用户再进行插入 <br>";   //若用户存在,将已存在用户信息打出,并提示此用户无法插入                   continue;                 }           }           Response.Write("<script>alert('Excle表导入成功!')</script>");            Label1.Text = error;         }         cn.Close();    }
  相关解决方案