您不能在只支持很少方法的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