none
LINQ中比较两个日期的相差天数怎么做? RRS feed

答案

全部回复

  • LINQ中比较两个日期的相差天数怎么做?

    两个日期都是从数据库中取出来的DATETIME类型

    (实体1.Column日期-实体2.Column日期).Days

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月4日 4:48
  •  var d1 = DateTime.Now;
                var d2 = DateTime.Now;
                (d1-d2).Days

    2012年5月4日 9:01
    版主
  • var q=(from s in db.Ct                     
                              where ((TimeSpan)(s.CtDisable-DateTime.Now)).Days<30
                              select s).OrderByDescending(s=>s.Id);

    gridview.datasource=q;

    gridview.databind();

    为什么会报错?

    GridView1上同时定义了 DataSource 和 DataSourceID。请移除一个定义。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    异常详细信息: System.InvalidOperationException: “GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。

    但问题是根本就没有什么DataSourceID


    2012年5月4日 10:10
  • var q=(from s in db.Ct                     
                              where ((TimeSpan)(s.CtDisable-DateTime.Now)).Days<30
                              select s).OrderByDescending(s=>s.Id);

    gridview.datasource=q;

    gridview.databind();

    为什么会报错?

    GridView1上同时定义了 DataSource 和 DataSourceID。请移除一个定义。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    异常详细信息: System.InvalidOperationException: “GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。

    但问题是根本就没有什么DataSourceID


    您好!请确定你没有用任何DataSource(比如SqlDatasource或者LinqDatasource什么的绑定GridView)。切换到aspx代码页检查<asp:GridView …… DataSourceId=""/……有木有?有请删除,谢谢!

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月4日 11:26
  • 没有,我是采用后台查询以后动态绑定的, LINQ 查询天数间隔怎么写哦?
    2012年5月4日 11:33
  • 去掉这一句就能成功的:

     where ((TimeSpan)(s.CtDisable-DateTime.Now)).Days<30

    所以问题还是在怎么判断日期跟当前的天数差

    2012年5月4日 11:34
  • 去掉这一句就能成功的:

     where ((TimeSpan)(s.CtDisable-DateTime.Now)).Days<30

    所以问题还是在怎么判断日期跟当前的天数差

    改用EntityFunctions.DiffDays:http://msdn.microsoft.com/zh-cn/library/dd412643.aspx

    http://stackoverflow.com/questions/570858/linq-to-entities-for-subtracting-2-dates

    Sample Code:

    NorthwindChineseEntities entities = new NorthwindChineseEntities();
                var result = from o in entities.Orders
                             where EntityFunctions.DiffDays(o.RequiredDate,o.OrderDate)<=3
                             select o;


    2012年5月4日 13:14
  • EntityFunctions.DiffDays

    这个是.NET4 才支持的吧 我现在3.5 用什么呢?

    2012年5月4日 13:43
  • EntityFunctions.DiffDays

    这个是.NET4 才支持的吧 我现在3.5 用什么呢?

    如果你记录不多,用AsEnumerable方法把LINQ-TO-ENTITY转化成LINQ-TO-OBJECT来做:

    using(NorthwindChineseEntities entities = new NorthwindChineseEntities())
    {
                var result = from o in entities.Orders.AsEnumerable()
                             where Math.Abs((o.RequiredDate-o.OrderDate).Days)<=3
                             select o;
    }

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月5日 0:18