2012-09-05 51 views
1

我有一個datatable 4列,其中一個是smalldatetime類型。當我從SQL庫檢索數據表時,我想通過datatable進一步查詢,但僅限於特定時間。這可能嗎?smalldatetime列中的數據表選擇時間

我試着像這樣的東西:

DataRow[] rows = dataset.Tables[0].Select("resStart = 'some date '" + myTime+"'"); 

,具體我試圖通過的日期和時間數據網格瀏覽所以最後它dhould通過查詢retreive一行這樣

DataRow[] rows = dataset.Tables[0].Select("resStart = '" + myDate +" " + myTime+"'"); 
+1

你確實需要提供更多的細節。我什至不知道這個問題。顯而易見的答案是「是」,但我想這不是你所期望的。 – m4573r

+0

您需要顯示您用於從數據庫檢索的代碼。基本上你想在列上添加一個'between'子句。 –

+0

從tbale名稱中選擇*其中CONVERT(VARCHAR(10),Colum_Name,8)='你的Spicifictime在這裏' –

回答

1

如果你想在你的源代碼中查詢你的數據 DataTable類支持方法SELECT它允許你根據給定的條件過濾你的表。詳細解釋請查看MSDN

string filterExpression = "YOUR_SMALLDATE_COLUMN > #1/1/00#"; 
DataRow[] rows = YOUR_DATATABLE_VAR.Select(filterExpression); 

// eg. print out results - or rebind data etc. 
for(int i = 0; i < rows.Length; i ++) 
{ 
    Debug.WriteLine(rows[i]["ANY_COLUMN_NAME"]); 
} 

當然,你也可以改變你的SELECT語句的數據庫和追加whereClause

1

這可能嗎?

當然可以。例如,通過使用LINQ到數據集:

var thisYearsRows = table 
    .AsEnumerable() 
    .Where(r => r.Field<DateTime>("SmalldateTimeField").Year == DateTime.Now.Year); 

您需要添加using System.Linq;System.Data.DataSetExtensions.dll參考。