将子节点添加到树视图

Adding child node to treeview

ProjectNumbers = DatabaseHandler.Instance.QuerySingleColumn(SelectProjectNumberQuery, "ProjectNumber");
      foreach (string ProjectNumber in ProjectNumbers)
      {
             ProjectTree.Nodes.Add(ProjectNumber);
             ProjectTree.EndUpdate();
             SelectWorkOrderNumberQuery = "SELECT DISTINCT WorkOrderNumber FROM dbo.SUBPRODUCTS WHERE ProjectNumber =" + Int32.Parse(ProjectNumber) + ";";
             WorkOrderNumbers = DatabaseHandler.Instance.QuerySingleColumn(SelectWorkOrderNumberQuery, "WorkOrderNumber");
                  foreach(string WorkOrderNumber in WorkOrderNumbers)
                  {                 
                      ProjectTree.Nodes[ProjectNumber].Nodes.Add(WorkOrderNumber); 
                  }
      }

我正在尝试用 SQL 数据库中的 ProjectNumbers 和 WorkOrderNumbers 填充我的 ProjectTree。 ProjectTree.Nodes.Add(ProjectNumber) 在第一个 foreach 循环中运行良好。

将我的 WorkOrderNumber 作为子对象添加时(第二个 foreach 循环),我得到的对象没有引用错误,我不太明白为什么。在他们使用 SelectedNode() 函数的地方找到了一些相关主题,但这对我不起作用。

让我们试试这个:

 ProjectNumbers = DatabaseHandler.Instance.QuerySingleColumn(SelectProjectNumberQuery, "ProjectNumber");
          foreach (string ProjectNumber in ProjectNumbers)
          {
                                 var node = new TreeNode(ProjectNumber);

                 SelectWorkOrderNumberQuery = "SELECT DISTINCT WorkOrderNumber FROM dbo.SUBPRODUCTS WHERE ProjectNumber =" + Int32.Parse(ProjectNumber) + ";";
                 WorkOrderNumbers = DatabaseHandler.Instance.QuerySingleColumn(SelectWorkOrderNumberQuery, "WorkOrderNumber");
                      foreach(string WorkOrderNumber in WorkOrderNumbers)
                      {                 
                            var workNode = new TreeNode(WorkOrderNumber);
                    node.Nodes.Add(workNode);
                      }
 ProjectTree.Nodes.Add(node);
          }