aspx excel導入到SQL

  ///  
        /// 上傳文件  
        /// </summary>  
        /// <param name="sender"></param>  
        /// <param name="e"></param>  
        protected void Updatebtn_Click(object sender, EventArgs e)
        {
            string fileName = fileId.FileName;
            string savePath = Server.MapPath("~/upload/");
            FileOperatpr(fileName, savePath);
            fileId.SaveAs(savePath + fileName);
            DataOperator(fileName, savePath);  
        }


        /// <summary>  
        /// 數據操作  
        /// </summary>  
        /// <param name="fileName"></param>  
        /// <param name="savePath"></param>  
        private void DataOperator(string fileName, string savePath)
        {
            string myString = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =  " + savePath + fileName + ";Extended Properties=Excel 8.0";
            OleDbConnection oconn = new OleDbConnection(myString);
            oconn.Open();
            DataSet ds = new DataSet();
            OleDbDataAdapter oda = new OleDbDataAdapter("select * from [Sheet1$]", oconn);
            oda.Fill(ds);
            oconn.Close();
            DataSetOperator(ds, savePath + fileName);
        }
        /// <summary>  
        /// 數據集操作  
        /// </summary>  
        /// <param name="ds"></param>  
        private void DataSetOperator(DataSet ds, string filePath)
        {
            //CustomerDB customer = new CustomerDB();
            //SqlConnection conn = customer.getcon();
            SqlConnection conn = new SqlConnection("Data Source=.;Database=ServiceDB;uid = sa; pwd=sa");
            conn.Open();
            SqlTransaction str = conn.BeginTransaction();//利用事務處理 防止中斷  
            int k = 0;
            if (ds.Tables[0].Rows.Count < 1)
            {
                Response.Write("<script>alert('Not data!')</script>");
                return;
            }
            try
            {
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string sqlStr = "insert into Store(PartNo,StoreLocation,Model,PartName,FactoryCode,BOXNO,PKNO)values";
                    sqlStr += "('" + ds.Tables[0].Rows[i][0].ToString() + "','";
                    sqlStr += ds.Tables[0].Rows[i][1].ToString() + "','";
                    sqlStr += ds.Tables[0].Rows[i][2].ToString() + "','";
                    sqlStr += ds.Tables[0].Rows[i][3].ToString() + "','";
                    sqlStr += ds.Tables[0].Rows[i][4].ToString() + "','";
                    sqlStr += ds.Tables[0].Rows[i][5].ToString() + "',";


                    sqlStr += "'" + ds.Tables[0].Rows[i][6].ToString() + "')";


                    Response.Write("sqlStr:" + sqlStr);


                    SqlCommand cmd = new SqlCommand(sqlStr, conn, str);
                    cmd.Transaction = str;
                    k += cmd.ExecuteNonQuery();
                }
                str.Commit();
            }
            catch (Exception ex)
            {
                Response.Write("Error,Data has been rolled back/nInformation/n" + ex.Message);
                str.Rollback();
            }
            finally
            {
                Response.Write("<script>alert('Upload complete" + k + "item')</script>");
                File.Delete(filePath);
            }
        }
        /// <summary>  
        /// 文件操作  
        /// </summary>  
        /// <param name="fileName"></param>  
        /// <param name="savePath"></param>  
        private void FileOperatpr(string fileName, string savePath)
        {
            if (!Directory.Exists(savePath))
            {
                Directory.CreateDirectory(savePath);
            }
            if (File.Exists(savePath + fileName))
            {
                File.Delete(savePath + fileName);
            }
        }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章