天天看點

asp.net 上傳excel到資料庫

 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)

    {

        SqlConnection conn = new SqlConnection("server=.;database=db_ExamOnline;uid=sa;pwd=123");

        conn.Open();

        SqlTransaction str = conn.BeginTransaction();//利用事務處理 防止中斷  

        int k = 0;

        if (ds.Tables[0].Rows.Count < 1)

        {

            Response.Write("沒有資料!");

            return;

        }

        try

        {

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

            {

                if (ds.Tables[0].Rows[i][0].ToString() == "")

                {

                    break;

                }

                else

                {

                    string sqlStr = "insert into tb_test(testContent,testAns1,testAns2,testAns3,testAns4,rightAns,pub,testCourse,uid)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 += "1,";

                    sqlStr += "'" + this.ddlkm.SelectedItem.Text + "',";

                    sqlStr += "'" + this.DropDownList1.SelectedItem.Text + this.DropDownList2.SelectedItem.Text + "')";

                    SqlCommand cmd = new SqlCommand(sqlStr, conn, str);

                    cmd.Transaction = str;

                    k += cmd.ExecuteNonQuery();

                }

            }

            str.Commit();

        }

        catch (Exception ex)

        {

            Response.Write("發生異常,資料已復原/n資訊/n" + ex.Message);

            str.Rollback();

        }

        finally

        {

            Response.Write("上傳成功" + k + "條");

            File.Delete(filePath);

        }

    }