显示每日,每周,每月和每年的费用以及它们在linq到sql中的总和--Windows Phone 7?

时间:2012-12-31 19:21:06

标签: c# windows-phone-7 linq-to-sql windows-phone-7.1

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

我的桌子有4个coloums

  1. ITEMNAME(字符串)
  2. 价格(双)
  3. 注释(字符串)
  4. 日期(日期时间)
  5. 如何生成今天的日期,当前周,月和年的费用报告?还有今天,当前周,月和年的总价格?下面是我的数据上下文,目前我只能显示所有费用..请帮助...我是Windows手机编程和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;
        }
    

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);