public void UpdateItmPeriodProfile_2(string UserID, string UpdateDate, ArrayList ParameterList, DbTransaction RootDBT, out int accept_days, out int out_days) { DBO.MaintainAcceptDBO dbo = new DBO.MaintainAcceptDBO(ref USEDB); string ValidDate = ParameterList[13].ToString(); string AllowAccept_Date = ParameterList[14].ToString(); accept_days = -1; out_days = -1; if (ValidDate != string.Empty && AllowAccept_Date != string.Empty) { DateTime dtValid = DateTime.ParseExact(ValidDate, "yyyy/MM/dd", null); DateTime dtAllow = DateTime.ParseExact(AllowAccept_Date, "yyyy/MM/dd", null); // 計算差異天數 TimeSpan tsDay = dtValid - dtAllow; accept_days = (int)tsDay.TotalDays + 1; out_days = GetOutDays(accept_days); } bool IsRootTranscation = false; try { //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion ArrayList SQLParameters = new ArrayList(); SQLParameters.Clear(); SQLParameters.Add(UserID); //0 string SQLParameters.Add(UpdateDate); //1 string SQLParameters.Add(ParameterList[0]); //2 string SQLParameters.Add(ParameterList[1]); //3 string SQLParameters.Add(ParameterList[2]); //4 int 一包裝數 SQLParameters.Add(ParameterList[3]); //5 double 3-10 共八個都是 double (SIZE) SQLParameters.Add(ParameterList[4]); //6 double SQLParameters.Add(ParameterList[5]); //7 double SQLParameters.Add(ParameterList[6]); //8 double SQLParameters.Add(ParameterList[7]); //9 double SQLParameters.Add(ParameterList[8]); //10 double SQLParameters.Add(ParameterList[9]); //11 double SQLParameters.Add(ParameterList[10]); //12 double SQLParameters.Add(ParameterList[11]); //13 string SQLParameters.Add(ParameterList[12]); //14 int SQLParameters.Add(accept_days); //15 int SQLParameters.Add(out_days); //16 int int Res = dbo.UpdateItmPeriodProfile_2(SQLParameters, DBT); } catch (Exception ex) { #region 交易失敗 if (IsRootTranscation) { //獨立呼叫Transcation失敗 DBT.Rollback(); } #endregion throw ex; } }