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



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

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);     
}

第二个循环应该只创建聚合的 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());

相关内容

最新更新