0

我正在开发一个 Windows Phone 应用程序,它可以进行简单的费用跟踪。在我的应用程序中,用户通过项目名称、价格、评论和日期时间输入费用,并将详细信息存储在数据库中。

我的桌子有 4 列

  1. 项目名称(字符串)
  2. 价格(双倍)
  3. 评论(字符串)
  4. 日期(日期时间)

如何生成按今天、当周、当月和当年所产生的费用的报告?还有今天、当前周、月和年的价格总和?以下是我的数据上下文,目前我只能显示所有费用..请帮助...我是 windows phone 编程和 linq to sql 的新手..

   namespace ExpenseTracker
  {
[Table]
public class ExpensesTable
{
    [Column(IsPrimaryKey = true)]
    public string ItemName
    {
        get;
        set;
    }
    [Column(CanBeNull = false)]
    public double Price
    {
        get;
        set;
    }


    [Column(CanBeNull = true)]
    public string Notes
    {
        get;
        set;
    }

    [Column(CanBeNull = false)]
    public DateTime TodayDate
    {
        get;
        set;
    }
}

}

 public IList<ExpensesTable> GetExpensesList()
    {

        IList<ExpensesTable> ExpensesList = null;
        using (ExpensesDataContext Expdb = new    ExpensesDataContext(strConnectionString))
        {
            IQueryable<ExpensesTable> ExpQuery = from Exp in Expdb.ExpensesInfo select Exp;
            ExpensesList = ExpQuery.ToList();
        }
        return ExpensesList;
    }

您能否提供我可以解决上述问题的任何代码或链接?如果我做错了什么,请指导我..

4

2 回答 2

0

看看这篇文章http://www.codethinked.com/grouping-linq-aggregates-in-c解释 LINQ 中的聚合和分组。

于 2013-01-01T12:42:51.327 回答
0

只需按日期范围(周、月等)过滤费用:

 var query = from e in Expdb.ExpensesInfo 
             where e.Date >= beginDate && e.Date <= endDate
             select e;

如果您需要计算总数:

 double total = query.Sum(e => e.Price);

对于过滤今天的费用:

 var beginDate = DateTime.Today;
 var endDate = beginDate.AddDays(1).AddSeconds(-1);
于 2013-01-01T12:51:25.083 回答