![](/img/trans.png)
[英]How to find total number of childs and Number of grand child levels under a hierarchical list parent in C#
[英]How to calulate the grand total in c# by using a genertic type?
我正在尝试编写一个应用程序,该应用程序允许我对数据库生成动态查询。 到目前为止,我能够生成/执行查询并将数据填充到表中而不会出现问题。
现在,我的一些查询使用SQL聚合函数,即COUNT(*), SUM(), AVG(), MAX...
使用聚合列时,我需要能够对总计的聚合列求和。 由于这是一个动态查询,因此数据类型可能会有所不同。 可以是整数,双精度或大整数
执行查询后,我将数据填充到字典列表中。 我的清单是这样定义的
public List<Dictionary<string, object>> Data { get; set; }
要将数据填充到没有总计的HTML表中,请在我的视图中执行以下操作
@for (int y = 0; y < Model.Data.Count; y++)
{
<tr>
@foreach (var attribute in Model.Data[y])
{
<td>@attribute.Value</td>
}
</tr>
}
现在,我需要能够为某些聚合列添加总计。 但是问题是我不知道数据类型是字符串形式的。
这是我试图做的
@{
var aggregateColumns = Model.Columns.Where(x => x.AggregateFunction != ReportsEngine.Support.ReportsGenerator.Report.Contracts.SqlAggregateFunctions.None).ToList();
var grandTotals = new Dictionary<string, object>();
}
@for (int y = 0; y < Model.Data.Count; y++)
{
<tr>
@foreach (var attribute in Model.Data[y])
{
<td>@attribute.Value</td>
var column = aggregateColumns.Where(x => x.SqlAlias == attribute.Key).FirstOrDefault();
if(column != null)
{
//At this point we know this is an aggregate column. Sum the data
//grandTotals[attribute.Key] += attribute.Value;
}
}
</tr>
}
如您所见,我尝试使用字典来增加每次。 grandTotals[attribute.Key] += attribute.Value;
有没有办法在不知道实际数据类型的情况下添加数据?
在这种情况下,如何汇总列?
我需要能够手动对记录进行求和,因为以后需要基于数据进行总计。
尽管我对这种方法不太满意,但这似乎很好用:
var result = AddTypelessNumbers((int)15 , (decimal)15.12));
static dynamic AddTypelessNumbers(dynamic a, dynamic b)
{
return a + b;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.