【问题标题】:Populating TreeView from database C#从数据库 C# 填充 TreeView
【发布时间】:2013-12-23 02:08:36
【问题描述】:

我在数据库中有两个关系为 1:N 的表,我想用数据填充树视图。问题是如何将孩子添加到每个父母。这是我的代码:

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

    }

    }

子元素是字段描述中的值。

我知道如何手动将孩子添加到每个父母,但我坚持认为它应该是动态的。

【问题讨论】:

    标签: c# database treeview


    【解决方案1】:

    子项是字段描述中的值。

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多