如果在第二个foreach循环中返回多个记录,如何使用数据表重新记录多个记录

时间:2017-07-19 10:43:29

标签: c#

我有两个嵌套的foreach语句Aspect Id和Aspect只返回单个记录作为最终结果。我有11个活动,其中一些方面与3个项目配对作为AspecId和Aspect但在循环后我只得到一个显示在我的报告看点我错过了什么。

 foreach (RiskActivity found in activities)
 {
    List<RiskAspect> aspects = RiskProvider.ListRiskAspect(found.Id).ToList();

    DataRow impactRow = impactTable.NewRow();

    impactRow.SetField("ActivityId", found.Id);
    impactRow.SetField("Activity", found.Activity);
    impactRow.SetField("OrderNumber", found.OrderNumber);   

    foreach (RiskAspect riskAspect in aspects)
    {           
        impactRow.SetField("AspectId", riskAspect.Id);
        impactRow.SetField("Aspect", riskAspect.AspectHazard);     
    }

1 个答案:

答案 0 :(得分:0)

第二个循环应该只创建聚合的AspectId和Aspect。然后将它们更新到列:

var ids = new StringBuilder();
var aspects = new StringBuilder();
foreach (RiskAspect riskAspect in aspects)
{           
    ids.AppendLine(riskAspect.Id);  // You can use Append to keep in the same line
    aspects.AppendLine(riskAspect.AspectHazard);
}
impactRow.SetField("AspectId", ids.ToString());
impactRow.SetField("Aspect", aspects.ToString());