【发布时间】:2017-01-02 16:38:54
【问题描述】:
我在 SQL 中有下表:
PARENT_CODE CHILD_CODE ATTRIBUTE_NAME ATTRIBUTE_DESCRIPT R_YEAR
------------- ------------ -------------- ------------------ -----------
1 001 ATT1 Description1 2016
1 001 ATT2 Description2 2016
1 001 ATT3 Description3 2016
1 001 ATT4 Description4 2016
1 001 ATT5 Description5 2016
1 001 ATT6 Description6 2016
1 002 ATT1 Description1 2016
1 002 ATT2 Description2 2016
1 002 ATT3 Description3 2016
1 002 ATT4 Description4 2016
2 003 ATT1 Description1 2016
2 003 ATT2 Description2 2016
2 003 ATT3 Description3 2016
2 003 ATT4 Description4 2016
如何以以下格式显示我的输出?
1 - 001 :
ATT1 : Description1
ATT2 : Description2
ATT3 : Description3
ATT4 : Description4
ATT5 : Description5
ATT6 : Description6
1 - 002 :
ATT1 : Description1
ATT2 : Description2
ATT3 : Description3
ATT4 : Description4
2 - 003 :
ATT1 : Description1
ATT1 : Description2
ATT1 : Description3
ATT1 : Description4
我知道我们可以使用 LinQ 或 foreach 循环来获得结果,但我不知道如何继续。
在我的代码下面:
string[] seledItems = ConvertLib.ToStr(Request.Form["sel_items[]"], string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string GetQUeryStr = string.Format(@"SELECT PARENT_CODE,CHILD_CODE,ATTRIBUTE_NAME,ATTRIBUTE_DESCRIPT,R_YEAR FROM JOBPATTERN
WHERE R_YEAR='{0}' AND PARENT_CODE IN ({1})", ddlYears.SelectedValue, string.Join(",", seledItems.Select(q => string.Format("'{0}'", q)).ToArray()));
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(GetQUeryStr, conn))
{
DataTable dt = new DataTable();
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach(var item in list)
{
// then how can i write this part
}
}
}
我在上面添加了我的代码以供参考。
【问题讨论】:
-
它可以用基本的 linq 来完成 - 你看过
GroupBy吗?请展示您一直在尝试和搜索的内容 -
我只是想做相同的父ID和相同的子ID数据组然后像上面那样显示
-
我已经用上述数据填充了数据表。然后需要分组。
-
已经在问题部分添加了我的代码。
-
使用 ChildCode 摸索它相同的父母会有不同的孩子。所以,使用 to child_code 需要对其进行分组
标签: c# asp.net sql-server linq foreach