2012-06-14 46 views
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年的所有月份我都想使用值= 5。例如如果我的日期是2010年2月1日2010年2月它應該返回我

如何使用datatable.select方法?我想要一些有效的過濾器表達。

+0

記錄如果你可以爲這個查詢提供一個工作解決方案,肯定會接受它:) – user1049021

回答

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年通過與一年任何日期= 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()) + "#"); 
+0

DataTable.Select(「dtDate =#」+ dt.ToString(「yyyy-MM-dd」)+「#」);這不會返回任何行,因爲dtDate '01/02/2010' – user1049021

+0

沒有任何一行哦,這只是一個例子,但是改變了日期。重讀你的問題,現在我有疑問。如果您有2010年2月至2010年2月的日期,您希望獲得2010年的記錄(只有一項)?等等? – Steve

+0

是的,你是對的。 – user1049021