从数据库C#填充TreeView

时间:2013-12-22 17:52:17

标签: c# database treeview

我在数据库中有两个表关系1:N我希望用数据填充treeview。问题是如何将childs添加到每个父级。这是我的代码:

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

    }

    }

子项是字段描述中的值。

我知道如何手动将孩子添加到每个家长,但我坚持不动它应该是动态的。

1 个答案:

答案 0 :(得分:1)

  

子项是字段描述中的值。

如果您的意思是 Description。它应该是这样的:

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