我有两个嵌套的语句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());