我有一个包含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
的引用。