將Excel轉化爲DataSet,並保存到數據庫

將Excel轉化爲DataSet

1.先將Excel文件上傳,取到上傳的Excel文件的絕對路徑;

2.將Excel中的數據讀取到DataSet中;

        /// <summary>
        /// 將Excel轉化爲DataSet
        /// </summary>
        /// <param name="path">Excel路徑</param>
        /// <returns>數據集</returns>
        public static DataSet ExcelToDataSet(string path)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
            DataSet myDataSet = new DataSet();
            using (OleDbConnection myOleDbConnection = new OleDbConnection(strConn))
            {
                myOleDbConnection.Open();
                string strExcel = " select * from [sheet1$]";
                using (OleDbCommand myOleDbCommand = new OleDbCommand(strExcel, myOleDbConnection))
                {
                    myOleDbCommand.ExecuteNonQuery();
                    using (OleDbDataAdapter myOleDbDataAdapter = new OleDbDataAdapter(myOleDbCommand))
                    {
                        myOleDbDataAdapter.Fill(myDataSet);
                    }
                }
            }
            return myDataSet;
        }


3.結合SqlCommandBuilder將DataSet中的數據存儲到數據庫;

        /// <summary>
        /// 將DataSet中的數據一次性存儲到數據庫
        /// </summary>
        /// <param name="sql">數據</param>
        /// <param name="strTblName">要操作的表</param>
        /// <returns></returns>
	public static int CommondDataTable(DataTable dt, string strTblName)
        {
 
            using (SqlConnection Connection = new SqlConnection(connectionString))
            {
                Connection.Open();
                SqlTransaction trans = Connection.BeginTransaction();
                try
                {
                    SqlDataAdapter adapter = new SqlDataAdapter();
                    SqlCommand cmd = new SqlCommand("select * from " + strTblName, Connection);
                    cmd.Transaction = trans;
                    adapter.SelectCommand = cmd;
                    SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter);
                    int reuslt = adapter.Update(dt);
                    trans.Commit();
                    return reuslt;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    return 0;
                }
            }
        }





發佈了47 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章