从数据库显示列表时出错

时间:2016-12-26 11:45:24

标签: c# sql-server asp.net-mvc

我想从数据库中获取程序列表。错误是

  

在cacheUtilites GetTrainingProgram方法中,用户代码未处理ArgumentNullException。

这是我的控制器代码:

[HttpGet]
        [Authorize(Roles = "Affiliate")]
        public ActionResult GetTrainingPrograms(int? affiliateId, string searchStr, bool? active, string sort, int? start, int? limit)
        {
            int affId = UserData.AffiliateID;
            if (affiliateId != null && affiliateId.Value > 0)
            {
                affId = affiliateId.Value;
            }

            string searchStrLower = string.Empty;
            string queryStr = String.Concat(affId);
            // The start point in the list of Training Programs
            if (start != null)
            {
                queryStr = String.Concat(queryStr, "-", start.Value);
            }
            // To find Active or Inactive at the Current Time
            if (active != null)
            {
                queryStr = String.Concat(queryStr, "-", active);
            }

            if (sort == null)
            {
                sort = "trainingProgramName";

            }
            queryStr = String.Concat(queryStr, "-", sort);

            if (limit != null)
            {
                queryStr = String.Concat(queryStr, "-", limit.Value);
            }
            //The keywords used to find a Training Program
            if (!string.IsNullOrEmpty(searchStr))
            {
                searchStrLower = searchStr.ToLower();
                queryStr = String.Concat(queryStr, "-", searchStrLower);
            }

            logger.Debug("trainingProgramListKey: " + queryStr);

            TrainingProgramList reloadData = CacheUtilities.Instance.GetTrainingProgramList(affiliateId);
            logger.Debug("reloadData: " + reloadData + ", affId: " + affId + ", queryStr: " + queryStr);
            string trainingProgramCacheKey = CbConstants.TrainingProgramCacheKey + queryStr;

            TrainingProgramList trainingProgramList = null;

            int totalCount = 0;
            // Checks the List is null or not to Display
            if (trainingProgramList == null)
            {
                logger.Debug("Cache miss for TrainingProgram list: " + trainingProgramCacheKey);

                trainingProgramList = new TrainingProgramList();
                trainingProgramList.AffiliateID = affId;
                totalCount = TrainingProgramRepository.Instance.GetTrainingProgramsCount(affId, searchStrLower, active);
                trainingProgramList.Entries = TrainingProgramRepository.Instance.GetTrainingPrograms(affId, searchStrLower, active, sort, start, limit);

                HttpRuntime.Cache.Insert(trainingProgramCacheKey, trainingProgramList, null, Cache.NoAbsoluteExpiration, CbConstants.CacheSlidingExpirationOneDay);
            }


            CbJsonResponse response = new CbJsonResponse();
            response.Data.Add(trainingProgramList);
            response.Status = "success";
            response.Meta.Add("total", Convert.ToString(totalCount));

            return Json(response, "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
        }
    }
}
  

CacheUtilities代码:

 public TrainingProgramList GetTrainingProgramList(int? affiliateID)
        {

            string trainingprofCacheKey = CbConstants.TrainingProgramCacheKey + affiliateID;
            TrainingProgramList trainingprogram = (TrainingProgramList)HttpRuntime.Cache[trainingprofCacheKey];
            if (trainingprogram != null)
            {
                logger.Debug("Cache hit for AffProfile Entity: " + trainingprofCacheKey);
            }
            else
            {
                logger.Debug("Cache miss for AffProfile Entity: " + trainingprofCacheKey);
            //  trainingprogram = TrainingProgramRepository.Instance.GetTrainingPrograms(AffiliateID);


                HttpRuntime.Cache.Insert(trainingprofCacheKey, trainingprogram, null, Cache.NoAbsoluteExpiration, CbConstants.CacheSlidingExpirationTwoHours);
            }

            return trainingprogram;
        }

0 个答案:

没有答案