1. 程式人生 > >Excel匯入資料庫,程式碼實現。

Excel匯入資料庫,程式碼實現。

Excel匯入的基本實現:

 1.先把Excel匯入DataSet裡

2.再把其中的值區出來,利用sql語句插入到資料庫裡。

 /// <summary>     /// 實現SQL語句的構造!     /// </summary>     /// <param name="ds"></param>     /// <param name="i"></param>     /// <returns>返回SQL語句!</returns>     public static string sqlinsert(DataSet ds,string strName, int i)     {         String strInsert = "insert into "+strName+" values(";

        for (int j = 0; j < ds.Tables[0].Columns.Count; j++)         {             SqlConnection myConnection = new SqlConnection();

            strInsert = strInsert + " '" + ds.Tables[0].Rows[i].ItemArray[j].ToString() + " ',";         }         return strInsert;     }     /// <summary>     /// 實現excel匯入DataSet內     /// </summary>     /// <param name="Pathm"></param>     /// <returns>DataSet</returns>     ///     public static DataSet ExcelToDS(string Pathm)     {         DataSet ds = new DataSet();         try         {             string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Pathm + ";" + "Extended Properties=Excel 8.0;";

            OleDbConnection conn = new OleDbConnection(strConn);

            conn.Open();

            string strExcel = "";

            OleDbDataAdapter myCommand = null;

            strExcel = "select * from [sheet1$]";

            myCommand = new OleDbDataAdapter(strExcel, strConn);

            myCommand.Fill(ds);         }         catch (System.Threading.ThreadAbortException)         {

        }         return ds;     }     protected void BtnLoad_Click(object sender, EventArgs e)     {

        string sqlStr = ConfigurationManager.AppSettings["DBConnectionString"];

        SqlConnection sqlCon = new SqlConnection(sqlStr);

        SqlCommand sqlCmd = sqlCon.CreateCommand();

        sqlCon.Open();

        if (fileExcel.PostedFile.FileName.ToString() != null && fileExcel.PostedFile.FileName.ToString() != "" && fileExcel.PostedFile.FileName.EndsWith(".xls"))         {             DataSet ds = null;

            try             {                 string path = fileExcel.PostedFile.FileName;

                path = path.Substring(path.LastIndexOf("//") + 1);

                string strFilePath = MapPath("excel") + "//" + path;

                fileExcel.PostedFile.SaveAs(strFilePath);

                ds = ExcelToDS(strFilePath);             }             catch (Exception)             {                 Response.Write(" <script >'匯入資料發生錯誤!' </script >");                 return;             }

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)             {

                SqlCommand cmd = sqlCon.CreateCommand();

                cmd.CommandText = "select TableName from Temp_Table_Name";

                string strName=cmd.ExecuteScalar().ToString();

                cmd.CommandText = "select TimeNameTable from "+strName+"";

                strName = cmd.ExecuteScalar().ToString();

                string strInsert = sqlinsert(ds,strName,i);

                strInsert = strInsert.Substring(0, strInsert.Length - 1);

                strInsert += ")";

                Response.Write("<Script Language=JavaScript>alert(/"資料匯入了資料庫!/")</Script>");

                sqlCmd.CommandText = strInsert;

                sqlCmd.ExecuteNonQuery();             }         }