数据表在smalldatetime列中选择时间



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

我正在尝试这样的东西:

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

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

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

如果您希望在源代码中查询数据。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

这可能吗?

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

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

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

最新更新