2013-12-22 86 views
0

我在關係1中有兩個數據庫表:N,我想用數據填充treeview。問題是如何將孩子添加到每個父母。這是我的代碼:從數據庫C填充TreeView#

private void PopulateTreeView() 
    { 
     try 
     { 
     DataTable dtProjekti = objDB.dbGetTable("SELECT * FROM tblProjekti"); 
     DataTable dtAktivnosti = objDB.dbGetTable("SELECT * FROM tblprojektakt"); 
     DataSet ds = new DataSet(); 
     ds.Tables.Add(dtProjekti); 
     ds.Tables.Add(dtAktivnosti); 
     ds.Relations.Add("childrens", dtProjekti.Columns["OznakaProjekta"], dtAktivnosti.Columns["OznakaProjekta"]); 

     if (ds.Tables[0].Rows.Count > 0) 
     { 
      treeView1.Nodes.Clear(); 

      foreach (DataRow masterRow in ds.Tables[0].Rows) 
      { 
       //TreeNode masterNode = new TreeNode((string)masterRow["ParentName"], Convert.ToString(masterRow["ParentId"])); 
       TreeNode masterNode = new TreeNode(masterRow["OznakaProjekta"].ToString()); 
       treeView1.Nodes.Add(masterNode); 

       foreach (DataRow childRow in masterRow.GetChildRows("Children")) 
       { 
         // missing code for adding childs to each parent  
       } 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     throw new Exception("Unable to populate treeview" + ex.Message); 
    } 

    } 

    } 

孩子們是來自字段說明的值。

我知道如何手動添加孩子到每個父母,但我stucked它應該是動態的。

回答

1

孩子們是來自字段說明的值。

如果你的意思是Description。它應該是這樣的:

foreach (DataRow childRow in masterRow.GetChildRows("Children")) 
{ 
    masterNode.Nodes.Add(new TreeNode(childRow["Description"].ToString())); 
} 
+0

謝謝!就是這個! – Josef