动态加载到数据库中的树视图 - 填充孙子

时间:2014-01-22 20:11:55

标签: c# winforms treeview

我需要从数据库数据中填充树视图,如下所示:

A
- abc 1
- def 2
        - fed 1
        - cbd 2 
B
- ghi 1
        - ihjg 1

有三张桌子。一个包括 - 让我们说'祖父母' - 数据,第二个用于'父母'数据,第三个用于'孙子'数据

目前我已设法为“祖父母”和“父母”加载数据:

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

但我不明白如何将第三张桌子上的孙子孙女添加到家长身上。 父和孙与表字段ID以1:N关系链接。

0 个答案:

没有答案