public static void UpV4_pay_charg(int ledger) { YDS6000.BLL.DataProcess.PayEstBLL bll = new YDS6000.BLL.DataProcess.PayEstBLL(ledger, Config.Uid); DataTable dtSource = bll.GetV4_pay_charg(); foreach (DataRow dr in dtSource.Rows) { long log_id = CommFunc.ConvertDBNullToLong(dr["Log_id"]); int co_id = CommFunc.ConvertDBNullToInt32(dr["Co_id"]); decimal firstVal = CommFunc.ConvertDBNullToDecimal(dr["FirstVal"]); decimal lastVal = CommFunc.ConvertDBNullToDecimal(dr["LastVal"]); decimal price = CommFunc.ConvertDBNullToDecimal(dr["Price"]); decimal chargVal = CommFunc.ConvertDBNullToDecimal(dr["ChargVal"]); decimal useAmt = Math.Round((lastVal - firstVal) * price, 2, MidpointRounding.AwayFromZero) + chargVal; DateTime firstTime = CommFunc.ConvertDBNullToDateTime(dr["FirstTime"]); DateTime lastTime = CommFunc.ConvertDBNullToDateTime(dr["LastTime"]); if (DateTime.Now < lastTime) { continue; } bll.UpV4_pay_charg(log_id, co_id, useAmt); } }