Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MYSQL内置函数使用select查询筛选Datatable记录_C#_Mysql_Asp.net - Fatal编程技术网

C# 使用MYSQL内置函数使用select查询筛选Datatable记录

C# 使用MYSQL内置函数使用select查询筛选Datatable记录,c#,mysql,asp.net,C#,Mysql,Asp.net,我在其他帖子中看到了如何使用“筛选表记录,您不能在只支持少数方法的数据表中使用数据库函数。请查看以下链接中的表达式语法,以了解支持的内容: 请注意,DataTable只是一个内存中的集合,它甚至不知道数据的来源。它既不与数据库相关也不与数据库链接 如果要筛选具有复杂条件(如一年中的一周)的表,则应使用Linq to DataTable,而不是使用所有.NET方法: DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; Calendar

我在其他帖子中看到了如何使用“筛选表记录,您不能在只支持少数方法的
数据表中使用数据库函数。请查看以下链接中的表达式语法,以了解支持的内容:

请注意,
DataTable
只是一个内存中的集合,它甚至不知道数据的来源。它既不与数据库相关也不与数据库链接

如果要筛选具有复杂条件(如一年中的一周)的表,则应使用
Linq to DataTable
,而不是使用所有.NET方法:

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();
DateTimeFormatInfo dfi=DateTimeFormatInfo.CurrentInfo;
日历校准=dfi.日历;
int week=cal.GetWeekOfYear(DateTime.Today,dfi.CalendarWeekRule,dfi.FirstDayOfWeek);
var rowsFiltered=来自表中的行。AsEnumerable()
让日期=行字段(“日期”)
其中date.Year==DateTime.Today.Year
&&week==cal.GetWeekYear(日期,dfi.CalendarWeekRule,dfi.FirstDayOfWeek)
选择行;
DataTable tblFiltered=table.Clone();//具有相同列的空表
foreach(行中的数据行已过滤)
tblFiltered.ImportRow(世界其他地区);
gvweeksch.DataSource=tblFiltered;
gvweeksch.DataBind();

那么,问题是什么?这不管用?任何异常或错误消息?未找到YEARWEEK-->errorgetting error,因为“源不包含任何数据行”。@初学者Stack1:然后筛选器未返回任何行。我已经编辑了我的答案。
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();