Excel格式文件上传到数据库

#region Excel格式文件上传到数据库
   
protected void Button4_Click(object sender, EventArgs e)
    {
       
string fileName = FileUpload1.FileName;
       
string fPath = Server.MapPath("UploadFiles//") + fileName;//文件保存的路径,服务器上的绝对路径
        string type = fileName.Substring(fileName.LastIndexOf(".") + 1);//获取文件后缀名
       
//Label1.Text = type;
        if (type != "xls")
            Response.Write(
"<script language=\"javascript\">alert('只接受上传Excel文件!')</script>");
       
else
        {
           
//上传文件
            FileUpload1.SaveAs(fPath);

            
string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + fPath + "';Extended Properties=Excel 8.0";
            OleDbConnection cnnxls
= new OleDbConnection(mystring);
            OleDbDataAdapter myDa
= new OleDbDataAdapter("select * from [Sheet1$]", cnnxls);
            DataSet myDs
= new DataSet();
            myDa.Fill(myDs,
"");
            GridView1.DataSource
= myDs.Tables[""];
            Bind();

           
//从excel文件获得数据后,插入记录到SQL Server的数据表
            SqlConnection sqlCon = new SqlConnection("Data Source=服务器;Initial Catalog=数据库;User ID=用户名;Password=密码");

            DataTable dataTable1
= new DataTable();

            SqlDataAdapter sqlDA1
= new SqlDataAdapter(@"SELECT * FROM 表", sqlCon);

            SqlCommandBuilder sqlCB1
= new SqlCommandBuilder(sqlDA1);

            sqlDA1.Fill(dataTable1);

           
foreach (DataRow dataRow in myDs.Tables[""].Rows)
            {

                DataRow dataRow1
= dataTable1.NewRow();
                dataRow1[
"数据库字段1"] = dataRow[0];
                dataRow1[
"字段2"] = dataRow[1];
                dataRow1[
"字段3"] = dataRow[2];//要和Excel表中字段相对应才行!
            }

            sqlDA1.Update(dataTable1);
            cnnxls.Close();
        }
    }
   
#endregion

posted on 2008-09-11 09:31  sdav  阅读(671)  评论(0)    收藏  举报

导航