获取当月数据记录条数

问题描述 投票:0回答:2

我正在尝试查找数据库中当月结束的车辆记录总数。我不知道在这种情况下我应该在

InvoiceDate
部分写什么。

public void MonthlyStatus(NetContext context)
{
    var monthlyStatus = (from car in context.CarInformation
        where car.CurrentSituation== "Finish" && car.InvoiceDate == 
        select car);

    if (monthlyStatus == null)
    {
        label1.Text = "0";
    }
    else
    {
        label1.Text = Convert.ToString(monthlyStatus);
    }     
}
c# sql winforms entity-framework linq
2个回答
3
投票

您可以提供查询以根据

Month
Year
进行过滤。

var monthlyCount = (from car in context.CarInformation
    where car.CurrentSituation== "Finish" 
        && car.InvoiceDate.Month == DateTime.Now.Month
        && car.InvoiceDate.Year == DateTime.Now.Year 
    select car)
    .Count();

label1.Text = Convert.ToString(monthlyCount);

请注意,如果没有实现(立即执行)查询,则不会执行当前的 LINQ 查询。

旁注,COUNT 查询可以用

Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
:

的方法语法编写
var monthlyCount = context.CarInformation
    .Count(car => car.CurrentSituation== "Finish" 
        && car.InvoiceDate.Month == DateTime.Now.Month
        && car.InvoiceDate.Year == DateTime.Now.Year);

根据@Svyatoslav Danyliv的建议,要通过提供日期范围过滤器来利用索引用法,应该是:

DateTime now = DateTime.Now;
DateTime startDate = new DateTime(now.Year, now.Month, 1);
DateTime endDate = startDate.AddMonth(1);

var monthlyCount = (from car in context.CarInformation
    where car.CurrentSituation== "Finish" 
        && car.InvoiceDate >= startDate
        && car.InvoiceDate < endDate 
    select car)
    .Count();

0
投票

我无法访问实时数据,因为我的知识只到2021年9月。要获取当月的数据记录数,您需要检查存储该信息的特定数据库或系统。通常,可以通过数据管理或分析工具获得此信息,这些工具可以查询并提供当月的数据计数。您可能还需要相关的访问权限和 SQL 或数据查询技能才能准确检索此信息。

© www.soinside.com 2019 - 2024. All rights reserved.