public ArrayList FileToTmp2(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.doDeleteTmp2(ParameterList);

                //0.V_ID
                //1.V_CREATEDATE
                //2.V_CREATEUID
                //3.V_UPDATEDATE
                //4.V_UPDATEUID
                //5.V_EAN_CODE
                //6.V_ITEM
                //7.V_CHAN_CODE
                //8.V_ITEM_NAME
                //9.V_PRICES
                //10.V_PRICES_CURRENCY
                //11.V_COVER_PRICE
                //12.V_COVER_PRICE_CURRENCY
                //13.V_COST_PRICE
                //14.V_COST_PRICE_CURRENCY
                //15.V_DISCOUNT
                //16.V_PUBLISH_TYPE
                //17.V_PUBLISH_TYPE_MEMO
                //18.V_LANGUAGE_CODE
                //19.V_LANGUAGE_MEMO
                //20.V_SOURCE
                //21.V_MAIN_FACTORY_CODE
                //22.V_PUBLISH_CODE
                //23.V_BUY_GROUP
                //24.V_MATERIEL_GROUP
                //25.V_MATERIEL_GROUP_MEMO
                //26.V_MADE_DATE
                //27.V_AUTHOR
                //28.V_MATERIAL
                //29.V_SIZES
                //30.V_ERROR_MSG
                //31.V_ERROR_MEMO
                //32.V_DATASOURCE
                //33.V_STATUS,
                //34.V_DATATYPE

                string strNowTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                int iRow = 1;
                int iCol1 = 0; //假如第1個Column是空格的 iCol1=1,假如第1個是EAN則iCol1=-1,因為第1個Column沒值時,Excel讀取後第1個Col會忽略掉.


                if (ds_Excel.Tables[0].Columns[0].ColumnName.Trim() == "EAN")
                    iCol1 = -1;
                else
                    iCol1 = 0;


                foreach (DataRow dRow in ds_Excel.Tables[0].Rows)
                {
                    if (dRow[1 + iCol1].ToString().Trim() != "EAN")
                    {
                        if ((dRow[1 + iCol1].ToString().Trim() != "") || (dRow[3 + iCol1].ToString().Trim() != "") || (dRow[4 + iCol1].ToString().Trim() != "")) //不為空值才執行
                        {
                            iErrCount = 0;
                            strErrMsg = "";

                            ParameterList.Clear();
                            ParameterList.Add(iRow);         //0.V_ID             
                            ParameterList.Add(strNowTime);   //1.V_CREATEDATE 
                            ParameterList.Add(strLoginUser); //2.V_CREATEUID                                  
                            ParameterList.Add(strNowTime);   //3.V_UPDATEDATE     
                            ParameterList.Add(strLoginUser); //4.V_UPDATEUID    
                            ParameterList.Add(CheckLength(dRow[1 + iCol1].ToString(), 30, "EAN條碼", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //5.V_EAN_CODE
                            ParameterList.Add(CheckLength(dRow[3 + iCol1].ToString(), 10, "廠商貨號", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //6.V_ITEM
                            ParameterList.Add(CheckLength(dRow[4 + iCol1].ToString(), 20, "通路對照號", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //7.V_CHAN_CODE     

                            //ParameterList.Add(CheckLength(dRow[6 + iCol].ToString(), 30, "商品名稱", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //8.V_ITEM_NAME
                            ParameterList.Add(SubStr(dRow[6 + iCol1].ToString(), 0, 30));//8.V_ITEM_NAME 自動截斷字串

                            ParameterList.Add(CheckLength(dRow[7 + iCol1].ToString(), 10, "售價", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //9.V_PRICES
                            ParameterList.Add(CheckLength(dRow[9 + iCol1].ToString(), 10, "售價幣別", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //10.V_PRICES_CURRENCY                            
                            ParameterList.Add(CheckLength(dRow[10 + iCol1].ToString(), 10, "Cover Price", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //11.V_COVER_PRICE
                            ParameterList.Add(CheckLength(dRow[11 + iCol1].ToString(), 10, "Cover Price 幣別", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //12.V_COVER_PRICE_CURRENCY
                            ParameterList.Add(CheckLength(dRow[12 + iCol1].ToString(), 10, "進貨基準價", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //13.V_COST_PRICE
                            ParameterList.Add(CheckLength(dRow[13 + iCol1].ToString(), 10, "進貨基準價幣別", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //14.V_COST_PRICE_CURRENCY
                            ParameterList.Add(CheckLength(dRow[14 + iCol1].ToString(), 10, "折扣", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //15.V_DISCOUNT
                            ParameterList.Add(CheckLength(dRow[15 + iCol1].ToString(), 10, "版別", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //16.V_PUBLISH_TYPE
                            ParameterList.Add(CheckLength(dRow[16 + iCol1].ToString(), 50, "版別說明", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //17.V_PUBLISH_TYPE_MEMO
                            ParameterList.Add(CheckLength(dRow[17 + iCol1].ToString(), 10, "語言別", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //18.V_LANGUAGE_CODE
                            ParameterList.Add(CheckLength(dRow[18 + iCol1].ToString(), 10, "語言別說明", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //19.V_LANGUAGE_MEMO
                            ParameterList.Add(CheckLength(dRow[19 + iCol1].ToString(), 10, "貨源", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //20.V_SOURCE
                            ParameterList.Add(CheckLength(dRow[20 + iCol1].ToString(), 10, "主廠商編號", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //21.V_MAIN_FACTORY_CODE
                            ParameterList.Add(CheckLength(dRow[21 + iCol1].ToString(), 10, "出版商編號", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //22.V_PUBLISH_CODE
                            ParameterList.Add(CheckLength(dRow[22 + iCol1].ToString(), 10, "採購群組", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //23.V_BUY_GROUP
                            ParameterList.Add(CheckLength(dRow[23 + iCol1].ToString(), 10, "物料群組", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //24.V_MATERIEL_GROUP
                            ParameterList.Add(CheckLength(dRow[24 + iCol1].ToString(), 50, "物料群組說明", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //25.V_MATERIEL_GROUP_MEMO
                            ParameterList.Add(CheckLength(dRow[25 + iCol1].ToString(), 10, "製造日期", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //26.V_MADE_DATE
                            ParameterList.Add(CheckLength(dRow[26 + iCol1].ToString(), 50, "作者名", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //27.V_AUTHOR
                            ParameterList.Add(CheckLength(dRow[27 + iCol1].ToString(), 10, "材質", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //28.V_MATERIAL
                            ParameterList.Add(CheckLength(dRow[28 + iCol1].ToString(), 10, "SIZE", strErrMsg, iErrCount, out strErrMsg, out iErrCount)); //29.V_SIZES                                                    

                            //誠品編號不得空值
                            if (dRow[4 + iCol1].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "誠品編號不得空值;";
                            }

                            int iTemp = 0;
                            //售價不得空值
                            if (dRow[7 + iCol1].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "售價不得空值;";
                            }
                            else if (int.TryParse(dRow[7 + iCol1].ToString().Trim(), out iTemp) == false)
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "售價非數值格式;";
                            }
                            //Cover Price不得空值
                            if (dRow[10 + iCol1].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "Cover Price不得空值;";
                            } if (int.TryParse(dRow[10 + iCol1].ToString().Trim(), out iTemp) == false)
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "Cover Price非數值格式;";
                            }
                            //進貨基準價不得空值
                            if (dRow[12 + iCol1].ToString().Trim() == "")
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "進貨基準價不得空值";
                            } if (int.TryParse(dRow[12 + iCol1].ToString().Trim(), out iTemp) == false)
                            {
                                iErrCount++;
                                strErrMsg = strErrMsg + "進貨基準價非數值格式;";
                            }

                            ParameterList.Add(strErrMsg);       //30.V_ERROR_MSG     
                            ParameterList.Add(strErrMsg);       //31.V_ERROR_MEMO     
                            ParameterList.Add(strOrg_FileName); //32.V_DATASOURCE     

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

                            dbo.doFileToTmp2(ParameterList, DBT);

                            i_FileToTemp_Total_count += 1;
                        }
                    }
                    iRow++;
                }

                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;
        }