none
DataTable.Select(FilterExpression),FilterExpression中如何使用日期型条件 RRS feed

  • 问题

  • 如题:DataTable.Select(FilterExpression),FilterExpression中如何使用日期型条件。我使用 〉〈时不提示错误,但结果不正确,使用DateDiff时,提示不存在这样的方法。

    那应该怎么使用呢?

    后来使用 Between 也是提示:表达式包含不支持的运算符“Between”。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年4月17日 0:28

答案

  • private void GetRowsByFilter()
    {
     DataTable table = DataSet1.Tables["Orders"];
     // Presuming the DataTable has a column named Date.
     string expression;
     expression = "Date > '1/1/00'";
     DataRow[] foundRows;
    
     // Use the Select method to find all rows matching the filter.
     foundRows = table.Select(expression);
    
     // Print column 0 of each returned row.
     for(int i = 0; i < foundRows.Length; i ++)
     {
      Console.WriteLine(foundRows[i][0]);
     }
    }
    
    
    http://msdn.microsoft.com/zh-cn/library/det4aw50(v=vs.80).aspx
    你也可尝试linq2DataTable来实现你的需求
    
     var dt=new DataTable();
    	 var query=from t in dt.AsEnumerable()
    	   where t.Field<DateTime>("time") <=DateTime.Now 
    			 select t;
    


    Best Regards,
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    • 已编辑 Tim Tang 2011年4月18日 1:32 e
    • 已标记为答案 Dodu.NET 2011年4月20日 4:42
    2011年4月18日 1:32

全部回复

  • 参考how to filter date from date time column using datatable?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年4月17日 3:22
    版主
  • a=>a.datetime>='20xx-xx-xx' && a.datetime<='20xx-xx-xx'
    2011年4月17日 13:44
  • private void GetRowsByFilter()
    {
     DataTable table = DataSet1.Tables["Orders"];
     // Presuming the DataTable has a column named Date.
     string expression;
     expression = "Date > '1/1/00'";
     DataRow[] foundRows;
    
     // Use the Select method to find all rows matching the filter.
     foundRows = table.Select(expression);
    
     // Print column 0 of each returned row.
     for(int i = 0; i < foundRows.Length; i ++)
     {
      Console.WriteLine(foundRows[i][0]);
     }
    }
    
    
    http://msdn.microsoft.com/zh-cn/library/det4aw50(v=vs.80).aspx
    你也可尝试linq2DataTable来实现你的需求
    
     var dt=new DataTable();
    	 var query=from t in dt.AsEnumerable()
    	   where t.Field<DateTime>("time") <=DateTime.Now 
    			 select t;
    


    Best Regards,
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    • 已编辑 Tim Tang 2011年4月18日 1:32 e
    • 已标记为答案 Dodu.NET 2011年4月20日 4:42
    2011年4月18日 1:32
  • 我也是这样的,可是结果不正确哦,目前的项目使用的是accdb数据库文件。
    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年4月20日 4:43