Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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
Asp.net 按动态数据库字段对内容进行分组_Asp.net - Fatal编程技术网

Asp.net 按动态数据库字段对内容进行分组

Asp.net 按动态数据库字段对内容进行分组,asp.net,Asp.net,有没有一种方法可以将转发器中的内容分组为动态标题 例如,我在数据库中有以下内容: 星期二-数学 星期二-科学 星期五-历史 星期五-艺术 我希望它在网页的输出中显示为: 星期二-数学、科学 星期五-历史、艺术 我希望项目按天分组;但是,我不想为一周中的每一天创建新的数据库连接,也不想硬编码组。有没有办法按数据库字段对内容进行分组 提前感谢您的帮助。您可以使用LINQ修改要绑定到中继器的数据源 这应该起作用: //original datasource from database Data

有没有一种方法可以将转发器中的内容分组为动态标题

例如,我在数据库中有以下内容:

  • 星期二-数学
  • 星期二-科学
  • 星期五-历史
  • 星期五-艺术
我希望它在网页的输出中显示为:

  • 星期二-数学、科学
  • 星期五-历史、艺术
我希望项目按天分组;但是,我不想为一周中的每一天创建新的数据库连接,也不想硬编码组。有没有办法按数据库字段对内容进行分组


提前感谢您的帮助。

您可以使用LINQ修改要绑定到中继器的数据源

这应该起作用:

//original datasource from database
DataTable table = new DataTable();

//modify the datasource using LINQ
var results = from row in table.AsEnumerable()
              group row by row.Field<string>("Day") into days
              select new
              {
                  Day = days.Key,
                  Class = String.Join(", ", days.Select(t => t.Field<string>("Class")).ToArray())
              };

//bind the repeater to the modified datasource
Repeater1.DataSource = results;
//数据库中的原始数据源
DataTable=新的DataTable();
//使用LINQ修改数据源
var results=来自表中的行。AsEnumerable()
按行将字段(“天”)分组为天
选择新的
{
天=天。键,
Class=String.Join(“,”,days.Select(t=>t.Field(“Class”)).ToArray()
};
//将转发器绑定到修改后的数据源
Repeater1.DataSource=结果;
编辑

以下是一些帮助您开始使用LINQ的教程:


我对LINQ不熟悉。我一定要看看这个,谢谢!这是一种代码隐藏类型的脚本吗?我不确定这段代码会停留在哪里…我是ASP新手,所以我还在学习。谢谢你花时间帮忙。绝对是代码落后。在绑定repeater之前,您可以使用它来修改数据源。好的。我会进一步调查的。谢谢:)使用LINQ将使您的生活比直接使用SQL更好。作为ASP.NET的新手,我建议您明智地将时间投入到将成为开发支柱的工具中。一个好的工具绝对是其中之一。酷,谢谢你的资源。要学的东西太多了!哈哈,这是好东西,谢谢。