C# 以编程方式生成treeview节点

C# 以编程方式生成treeview节点,c#,treeview,C#,Treeview,如何以编程方式为此集合生成treeview节点 node id parent node id ------- -------------- 100 null //this is the root node 101 100 123 101 124 101 126 101

如何以编程方式为此集合生成treeview节点

node id          parent node id

-------          --------------

100                 null           //this is the root node

101                 100

123                 101

124                 101

126                 101

103                 100

104                 100

109                 100

128                 109

122                 100

127                 122

129                 127

130                 129

下面是一些可能有助于开始的伪代码

AddChildNodes(TreeNode parentNode)
{
   var childNodeIds GetChildNodeIds(parentNode.Id);
   foreach (int childNodeId in childNodeIds)
   {
      TreeNode childNode = new TreeNode();
      //set other properties...

      //add to parent          
      parentNode.Nodes.Add(childNode);

      //call same function recursively
      AddChildNodes(childNode);
   } 
}


然后在您的程序中,首先获取所有没有父节点id(根节点)的项,为它们创建一个节点,然后调用上面的递归函数。

真正的问题是什么?您不知道如何以编程方式创建节点,或者节点ID有什么特殊之处吗?我不知道如何,似乎我需要创建一个递归方法,但我不知道如何应用它,我从节点的外接程序集合开始,但我的问题是这些实例的数量!它不起作用,因为我不仅有父项和子项,我还有子项(根,子1,子2,子3,子4)我的问题是子项的数量,因为我从数据库填充我的树视图,这个表是StoredProcess的输出此算法是递归的,它也应该考虑到这一点,不管你有多少等级。只要使用这段代码和你提供的列表,在一张纸上做一个模拟,你就会看到它是有效的。是的,我明白了,但是有些值丢失了,我必须修复。如果值丢失了,你在实现中有一个错误,这并不意味着算法是错误的。你有没有试着按照我的建议去实现它?人们怎么了!!我这么做了,我告诉过你我必须在我的代码中修复sm的东西!!