ASP.NET MVC如何按指定年月统计数据库表中的行数?
解决方案
要实现按SiteCode和日期的年、月统计数据库表中的行数,你需要修改Where条件,不再直接匹配完整日期,而是分别匹配年份和月份。以下是调整后的代码:
public ActionResult CreateTT(tblTT fctt) { int countFuel = db.tblFuelTroubleTickets .Where(x => x.SiteCode == fctt.SiteCode && x.RequiredVisitDate.Year == fctt.RequiredVisitDate.Year && x.RequiredVisitDate.Month == fctt.RequiredVisitDate.Month) .Count(); // 可添加后续逻辑,比如返回视图或处理统计结果 return View(); }
说明
- 直接提取日期的
Year和Month属性比较,确保仅统计同年同月的数据,而非同一天。 - 该写法会被Entity Framework解析为对应SQL日期函数查询,不会在客户端加载全量数据再过滤,保证查询性能。
如果数据库日期字段可能为null,需先做空值判断避免异常:
public ActionResult CreateTT(tblTT fctt) { if (fctt.RequiredVisitDate == null) { // 处理日期为空的情况,比如返回错误或设统计数为0 return View(); } int countFuel = db.tblFuelTroubleTickets .Where(x => x.SiteCode == fctt.SiteCode && x.RequiredVisitDate.HasValue && x.RequiredVisitDate.Value.Year == fctt.RequiredVisitDate.Value.Year && x.RequiredVisitDate.Value.Month == fctt.RequiredVisitDate.Value.Month) .Count(); return View(); }
内容的提问来源于stack exchange,提问作者Farhan Ahmed
相关产品推荐
相关产品推荐

