1

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

我正在尝试这样的事情:

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

特别是我试图在数据网格中浏览日期和时间,所以最后它应该通过这样的查询来检索一行

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

2 回答 2

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

于 2012-09-05T10:50:11.560 回答
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.

于 2012-09-05T10:52:37.920 回答