public ArrayList FileToTmp1(DataSet ds_Excel, string strLoginUser, string strStoreChain, string strOrg_FileName)
        {

            ArrayList arl_Return = new ArrayList();
            int i_FileToTemp_Total_count = 0;

            string strErrMsg = "";
            Int32 iErrCount = 0;
            ArrayList ParameterList = new ArrayList();
            ArrayList pList = new ArrayList();

            try
            {

                //獨立呼叫啟動Transcation
                Conn = USEDB.CreateConnection();
                Conn.Open();
                DBT = Conn.BeginTransaction();

                ParameterList.Clear();
                DBO.MKT_ChainItemInfoDBO dbo = new MKT_ChainItemInfoDBO(ref USEDB);


                // 先清除前一次,同一使用者執行的匯入暫存資訊與錯誤資訊,並將 Excel 資料匯入 TEMP TABLE
                ParameterList.Clear();
                ParameterList.Add(strLoginUser);
                dbo.doDeleteTmp1(ParameterList);

                //0.V_CREATEDATE 
                //1.V_CREATEUID      
                //2.V_ID             
                //3.V_UPDATEDATE     
                //4.V_UPDATEUID      
                //5.V_CHAIN_CODE     
                //6.V_ITEM_CODE      
                //7.V_TEP_CODE       
                //8.V_ITEM_NAME      
                //9.V_MEMO           
                //10.V_YEAR           
                //11.V_PERIOD_CODE    
                //12.V_COVER_DATE     
                //13.V_PRICES         
                //14.V_BARCODE        
                //15.V_EAN_CODE       
                //16.V_PUBLISH_TYPE   
                //17.V_PRE_ACCEPT_DATE
                //18.V_ERROR_MEMO     
                //19.V_DATASOURCE     
                //20.V_STATUS         
                //21.V_DATATYPE        
                string strNowTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                int iRow = 0;
                foreach (DataRow dRow in ds_Excel.Tables[0].Rows)
                {
                    iRow++;
                    if (iRow > 1)
                    {
                        if (
                            (dRow[1].ToString().Trim() != "") ||
                            (dRow[2].ToString().Trim() != "") ||
                            (dRow[3].ToString().Trim() != "") ||
                            (dRow[4].ToString().Trim() != "") ||
                            (dRow[5].ToString().Trim() != "") ||
                            (dRow[6].ToString().Trim() != "") ||
                            (dRow[8].ToString().Trim() != "") ||
                            (dRow[9].ToString().Trim() != "") ||
                            (dRow[10].ToString().Trim() != "") ||
                            (dRow[11].ToString().Trim() != "") ||
                            (dRow[12].ToString().Trim() != "") ||
                            (dRow[14].ToString().Trim() != "")
                           )//不為空值才執行
                        {
                            iErrCount = 0;
                            strErrMsg = "";

                            ParameterList.Clear();
                            ParameterList.Add(strNowTime);   //0.V_CREATEDATE 
                            ParameterList.Add(strLoginUser); //1.V_CREATEUID      
                            ParameterList.Add(iRow);         //2.V_ID             
                            ParameterList.Add(strNowTime);   //3.V_UPDATEDATE     
                            ParameterList.Add(strLoginUser); //4.V_UPDATEUID    
                            ParameterList.Add(strStoreChain);//5.V_CHAIN_CODE                                

                            //6.V_ITEM_CODE (10)

                            ParameterList.Add(CheckLength(dRow[1].ToString().Trim(), 10, "高見品號", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //7.V_TEP_CODE (10)
                            ParameterList.Add(CheckLength(dRow[2].ToString().Trim(), 10, "台英品號", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //8.V_ITEM_NAME (30)
                            //ParameterList.Add(CheckLength(dRow[3].ToString(), 30, "品名", strErrMsg, iErrCount, out strErrMsg, out iErrCount));
                            ParameterList.Add(SubStr(dRow[3].ToString().Trim(), 0, 30));//自動截斷字串

                            //9.V_MEMO (500)
                            ParameterList.Add(CheckLength(dRow[4].ToString().Trim(), 500, "備註", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //10.V_YEAR (4)                            
                            ParameterList.Add(CheckLength(dRow[5].ToString().Trim(), 4, "高見期別(年)", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //11.V_PERIOD_CODE (6)
                            ParameterList.Add(CheckLength(dRow[5].ToString().Trim() + dRow[6].ToString().Trim(), 6, "高見期別(年月)", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //12.V_COVER_DATE (10)
                            ParameterList.Add(CheckLength(dRow[8].ToString().Trim(), 20, "封面日期", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //13.V_PRICES (10)        
                            ParameterList.Add(CheckLength(dRow[9].ToString().Trim(), 10, "價格", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //14.V_BARCODE (20)        
                            ParameterList.Add(CheckLength(dRow[10].ToString().Trim(), 20, "原印碼", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //15.V_EAN_CODE (20)     
                            ParameterList.Add(CheckLength(dRow[11].ToString().Trim(), 30, "EAN條碼", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //16.V_PUBLISH_TYPE (10)
                            ParameterList.Add(CheckLength(dRow[12].ToString().Trim(), 10, "刊別", strErrMsg, iErrCount, out strErrMsg, out iErrCount));

                            //17.V_PRE_ACCEPT_DATE (10)                            
                            if (dRow[14].ToString().Trim().Length < 10)
                                ParameterList.Add(dRow[14].ToString().Trim());
                            else
                                ParameterList.Add(dRow[14].ToString().Trim().Substring(0, 10));//17.V_PRE_ACCEPT_DATE

                            //高見品號不得為空值
                            if (dRow[1].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "高見品號不得為空值;";
                            }

                            //高見期別不得為空值
                            if ((dRow[5].ToString().Trim() + dRow[6].ToString().Trim()) == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "高見期別不得為空值;";
                            }

                            //價格不得為空值
                            if (dRow[9].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "價格不得為空值;";
                            }
                            else
                            {
                                double dblPrice = 0;
                                if (double.TryParse(dRow[9].ToString().Trim(), out dblPrice) == false)
                                {
                                    iErrCount++;
                                    strErrMsg = strErrMsg + "價格非數值資料;";
                                }
                            }

                            //條碼不得為空值
                            if (dRow[11].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "EAN條碼不得為空值;";
                            }

                            ParameterList.Add(strErrMsg);//18.V_ERROR_MEMO     
                            ParameterList.Add(strOrg_FileName);//19.V_DATASOURCE     

                            //20.V_STATUS  1:正常資料 2:錯誤資料       
                            if (iErrCount != 0)
                            {
                                ParameterList.Add("2");
                            }
                            else
                            {
                                ParameterList.Add("1");
                            }
                            ParameterList.Add("1");//21.V_DATATYPE 1:File To Temp 2:Temp To DB

                            dbo.doFileToTmp1(ParameterList, DBT);

                            i_FileToTemp_Total_count += 1;
                        }
                    }
                }

                DBT.Commit();

                arl_Return.Add("TRUE");
                arl_Return.Add(i_FileToTemp_Total_count);

            }
            catch (Exception ex)
            {
                DBT.Rollback();
                arl_Return.Add("FALSE");
                arl_Return.Add(ex.Message);
                throw ex;
            }

            return arl_Return;
        }