2014-01-19 3 views
0

мне нужно заполнить TreeView из базы данных принял выглядеть следующим образом:Populate TreeView - дети узел с подузлом

Родителя - Дети - Subchildren

Есть три таблицы. Один, который состоит данные родительскую, второй для данных «ребенок» и третья для «Subchilds»

На данный момент я сделал загрузку данных для «родителей» и «Детский»:

private void PopulateTreeView() 
{ 
    try 
    { 
     DataTable dtProjekti = objDB.dbGetTable("SELECT * FROM tblProjekti"); 
     DataTable dtAktivnosti = objDB.dbGetTable("SELECT * FROM tblAktivnosti"); 
     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) 
     { 
      treeProjekti.Nodes.Clear(); 

      foreach (DataRow masterRow in ds.Tables[0].Rows) 
      { 
       TreeNode masterNode = new TreeNode(masterRow["OznakaProjekta"].ToString(), 0, 1); 
       treeProjekti.Nodes.Add(masterNode); 

       foreach (DataRow childRow in masterRow.GetChildRows("childrens")) 
       { 
        TreeNode childNode = new TreeNode(childRow["NazivAktivnosti"].ToString());       
        masterNode.Nodes.Add(childRow["IdAkt"].ToString(), childRow["NazivAktivnosti"].ToString(), 0, 1); 
       } 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     throw new Exception("Unable to populate treeview" + ex.Message); 
    } 

} 

Как решить проблему для загрузки подщелий?

ответ

0

узел подщелки - дочерний узел «childNode». вам нужно просто потребовать другой оператор foreach с данными subchild после того, как вы добавите childNode к родительскому элементу в свой код выше.

+0

Я уже пробовал это, но еще одна проблема, связанная со второй и третьей таблицей базы данных. Это не позволяет мне создавать новый набор данных и заполнять второй и третий таблицы и устанавливать связь между ними. – Josef

Смежные вопросы