C# 如何在数据表中的自引用数据中获取组总数?

C# 如何在数据表中的自引用数据中获取组总数?,c#,ado.net,C#,Ado.net,我的数据表中有三列 1) ProductID 2) ProductParentID 3) ProductTotal ProductID和ProductParentID是自引用列,我可以在其中设置父子关系并基于关系获取子行。假设我有以下数据 产品1 产品11 产品12 产品13 产品131 产品132 产品133 产品2 产品21 产品22 产品23 在Product total列的上面层次结构旁边,我想要的是每个子行的总和,这些子行的总和Product total应该汇总到它的父产品中。 例如,

我的数据表中有三列

1) ProductID
2) ProductParentID
3) ProductTotal

ProductID和ProductParentID是自引用列,我可以在其中设置父子关系并基于关系获取子行。假设我有以下数据
产品1
产品11
产品12
产品13
产品131
产品132
产品133
产品2
产品21
产品22
产品23

在Product total列的上面层次结构旁边,我想要的是每个子行的总和,这些子行的总和Product total应该汇总到它的父产品中。 例如,如果产品131总计为10,产品13总计为15,产品133总计为5,则产品13总计应为30。逻辑应适用于n个自分层结构

在数据表本身中是否有任何功能可以在不迭代每一行并手动执行的情况下实现这一点

谢谢。

你看过报纸了吗?就你而言:-

        DataRelation productRelation= new DataRelation("ProductRelation",
        oDs.Tables["Product"].Columns["ProductId"],
        oDs.Tables["Product"].Columns["ProductParentId"]);
        dataSetObj.Relations.Add(productRelation);

然后使用LINQ to DataSet实现SO中所述的功能。

谢谢。是的,我已经在使用DataRelation,并且正在寻找不需要编写太多代码的功能。我没有使用linq,所以现在我通过编写一些递归代码来获得子行的总数并将其设置为其父行字段,从而达到了我的要求。顺便说一句,如果我一直在使用Linq,我们能为N级层次实现它吗?在我的例子中,我可以有任意数量的子表。