1

我有一个数据表,其中包含保存的年度数据。例如

dtDate                      Value
2010-01-01 00:00:00.000     5.0000
2011-01-01 00:00:00.000     15.0000
2012-01-01 00:00:00.000     25.0000
2013-01-01 00:00:00.000     35.0000
2014-01-01 00:00:00.000     45.0000

现在我想将此数据表用于每月处理。所以对于 2010 年的所有月份,我想使用 value=5。例如,如果我的日期是 2010 年 2 月 1 日 2010 年 2 月,它应该返回给我

如何使用datatable.select方法?我想要一些有效的过滤器表达式。

4

1 回答 1

1

DataTable.Select(filterExpression) 重载方法包含参数 filterExpression,该参数使用与通过Expression属性创建计算列相同的语法。

您可以使用此代码获取所需的行

Dim dt as DateTime dt = new DateTime(2010,1,1,0,0,0)
Dim r as DataRow() r = DataTable.Select("dtDate = #" + dt.ToString("yyyy-MM-dd") + "#");

如果您的意图是让 2010 年的记录通过 year = 2010 的任何日期,那么您可以使用此语法

' Supposing date passed is 1/May/2010 and you want the record with 2010 as year.
Dim dt as DateTime dt = new DateTime(2010,5,1,0,0,0)  
Dim r as DataRow() r = DataTable.Select("dtDate = #01/01/" + dt.Year.ToString()) + "#");
于 2012-06-14T13:09:07.763 回答