public void Car_Insert(FactoryArgs args, out t_BigID CarID, out t_String CarCode, t_String CarNum, t_BigID SupplierID, t_BigID CardID, t_String Description, t_Decimal DefaultCarWeight) { CarCode = new t_String(); CarID = new t_BigID(); DefaultCarWeight.IsNullToZero(); CardID.NullIfZero(); SupplierID.NullIfZero(); using (DataTable dtCar = _DALDbCar.GetCarByName(args, CarID, CarNum)) { if (dtCar.Rows.Count > 0) { throw new Exception("该车牌号码已存在!"); } } t_BigID CarID_temp = new t_BigID(); t_String CarCode_temp = new t_String(); DBHelper.ExecInTransDelegate exec = delegate(FactoryArgs argsInTrans) { t_String MaxCode; _DALDbCar.GetMaxCarCode(argsInTrans, out MaxCode); int CodeIndex = MaxCode.Value == null ? 0 : LBConverter.ToInt32(MaxCode.Value.Replace("C", "")); CodeIndex++; if (CodeIndex < 10) { CarCode_temp.SetValueWithObject("C000" + CodeIndex.ToString()); } else if (CodeIndex < 100) { CarCode_temp.SetValueWithObject("C00" + CodeIndex.ToString()); } else if (CodeIndex < 1000) { CarCode_temp.SetValueWithObject("C0" + CodeIndex.ToString()); } else { CarCode_temp.SetValueWithObject("C" + CodeIndex.ToString()); } if (CardID.Value > 0)//取消卡片的车辆关联 { CancelRefCard(argsInTrans, CardID); } _DALDbCar.Car_Insert(argsInTrans, out CarID_temp, CarCode_temp, CarNum, Description, DefaultCarWeight, SupplierID, CardID); }; DBHelper.ExecInTrans(args, exec); CarID.Value = CarID_temp.Value; CarCode.Value = CarCode_temp.Value; }