我有一个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+"'");
答案 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
的引用。