2016-05-02 16 views
0
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); 
        } 
     } 

Ich versuche, ProjectTree mit ProjectNumbers und WorkOrderNumbers aus einer SQL-Datenbank zu füllen. Die ProjectTree.Nodes.Add(ProjectNumber) funktioniert innerhalb der ersten foreach-Schleife.Hinzufügen eines untergeordneten Knotens zur Baumansicht

Beim Hinzufügen meiner WorkOrderNumber als Kind (zweite foreach-Schleife), bekomme ich das Objekt ohne Referenzfehler, kann nicht ganz herausfinden, warum. Gefunden einige verwandte Themen, wo sie die SelectedNode() Funktion verwenden, aber das funktioniert nicht für mich.

+0

Warum sind Sie '.ToString()' auf 'string' nennen? – yaakov

+0

Mögliches Duplikat von [Was ist eine NullReferenceException und wie behebe ich sie?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – yaakov

+0

@codran Korrigiert, dass – Pim

Antwort

0

Lets try this:

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); 
      } 
+0

Vielen Dank! – Pim

+0

Wissen Sie, warum ein Verweis auf den Knoten beibehalten wird, aber ein erneutes Suchen schlägt fehl? – yaakov

+2

weil ProjectTree.Nodes [ProjectNumber] nach einem Schlüssel sucht, aber wenn Sie einen Knoten hinzufügen, legen Sie einfach einen Titel dafür fest –

Verwandte Themen