111,073
社区成员




DataTable dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("Name");
dt.Columns.Add("Group");
dt.Rows.Add("1", "name1", "1");
dt.Rows.Add("2", "name2", "1");
dt.Rows.Add("3", "name3", "2");
dt.Rows.Add("4", "name4", "2");
// 获得分组为1的数据
DataRow[] result2 = dt.Select("Group=1");
// 获得各个分组数据
IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["Group"].ToString());
declare @a table
(
GroupId int,
GroupName varchar(50)
);
declare @b table
(
GroupId int,
StudentName varchar(50)
);
insert into @a
select 1, 'A组' union all
select 2, 'B组'
insert into @b
select 1, '学生1' union all
select 1, '学生2' union all
select 1, '学生3' union all
select 2, '学生4' union all
select 2, '学生5' -- 测试数据准备完毕
---修改这段为你的SQL查询,直接返回DataTable,然后进行绑定即可
;WITH c1 AS
(
select b.GroupId,
STUFF((select ','+LTRIM(studentName) from @b where groupid = b.GroupId FOR XML PATH('')),1,1,'') 学生姓名
from @a a
join @b b on a.GroupId = b.GroupId
GROUP BY b.GroupId
)
SELECT a.GroupName, c1.学生姓名
from c1 join @a a on c1.GroupId = a.GroupId
--测试结果:
GroupName 学生姓名
-------------------------------------------------- ------------------------------------------
A组 学生1,学生2,学生3
B组 学生4,学生5
(2 行受影响)