ASP.NET MVC中Syncfusion饼图加载SQL数据如何对同类项求和展示
解决方案
你可以通过两种方式实现同类别数据求和聚合,无需修改现有前端饼图代码:
方案1:SQL查询层面直接聚合(推荐,性能最优)
直接在拉取SQL数据的查询语句中使用GROUP BY + 聚合函数完成同类别求和,拿到的数据就是已经聚合完成的结果,无需后端额外处理:
SELECT Heading, SUM(Factor_Score) AS Factor_Score FROM 你的业务表名 -- 此处保留你原有的查询过滤条件 GROUP BY Heading
方案2:控制器内存中聚合
如果不方便修改SQL查询,可在C#控制器中对已经拉取到的数据集用LINQ做分组求和:
你现有控制器中填充完PieChartData_Data_View集合后,增加如下聚合逻辑即可:
// 原有填充PieChartData_Data_View的代码保持不变 string a = Heading; int b = Convert.ToInt32(Factor_Score); PieChartData_Data_View.Add(new PieChartSourceDataData_View(a, b)); // 新增分组求和逻辑 var aggregatedData = PieChartData_Data_View .GroupBy(data => data.Heading) .Select(group => new PieChartSourceDataData_View( group.Key, group.Sum(item => item.Factor_Score) )) .ToList(); // 将聚合后的数据集赋值给前端绑定的ViewBag ViewBag.dataSource1 = aggregatedData;
注意:如果你的
Factor_Score是可空类型,求和时可调整为group.Sum(item => item.Factor_Score ?? 0)避免空值异常。
两种方案都可以直接复用你现有的前端Syncfusion饼图代码,不需要做任何修改。
内容的提问来源于stack exchange,提问作者boredeggyolk
相关产品推荐
相关产品推荐

