您不能在只支持很少方法的DataTable
中使用数据库函数。看看表达式的语法在下面链接查看什么是支持:
http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=vs.110).aspx
注意,一个DataTable
只是在内存中的保藏不知道数据的来源。它既不相关也不与数据库链接。
如果你想和喜欢,你拥有所有的.NET方法,你应该使用Linq-To-DataTable
而不是一年的一周复杂条件来过滤表:
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
Calendar cal = dfi.Calendar;
int week = cal.GetWeekOfYear(DateTime.Today, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
var rowsFiltered = from row in table.AsEnumerable()
let date = row.Field<DateTime>("Date")
where date.Year == DateTime.Today.Year
&& week == cal.GetWeekOfYear(date, dfi.CalendarWeekRule, dfi.FirstDayOfWeek)
select row;
DataTable tblFiltered = table.Clone(); // empty table with same columns
foreach (DataRow row in rowsFiltered)
tblFiltered.ImportRow(row);
gvweeksch.DataSource = tblFiltered;
gvweeksch.DataBind();
那么,是什么问题?这不行?任何异常或错误信息? – 2014-10-08 07:58:09
YEARWEEK - >未找到错误 – BeginnerStack1 2014-10-08 08:37:16