在smalldatetime列中的数据表选择时间

时间:2012-09-05 10:41:54

标签: c# datatable dataset smalldatetime

我有一个datatable有4列,其中一列是smalldatetime类型。当我从SQL库中检索数据表时,我想通过datatable进一步查询,但仅限于特定时间。这可能吗?

我试着用这样的东西:

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

具体而言我正在尝试浏览datagrid中的日期和时间,所以最后它会通过这样的查询来检索一行

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

2 个答案:

答案 0 :(得分:1)

如果希望在sourceCode中查询数据 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 :(得分:1)

  

这可能吗?

当然可以。例如,使用Linq-To-DataSet:

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

您需要添加using System.Linq;System.Data.DataSetExtensions.dll的引用。