C# 使用子节点填充TreeView-子节点
我需要从数据库中填充treeview,如下所示: 母公司 -孩子们 -亚儿童 有三张桌子。一个包含“父”数据,第二个包含“子”数据,第三个包含“子”数据 目前,我正在加载“家长”和“孩子”的数据:C# 使用子节点填充TreeView-子节点,c#,winforms,treeview,C#,Winforms,Treeview,我需要从数据库中填充treeview,如下所示: 母公司 -孩子们 -亚儿童 有三张桌子。一个包含“父”数据,第二个包含“子”数据,第三个包含“子”数据 目前,我正在加载“家长”和“孩子”的数据: private void PopulateTreeView() { try { DataTable dtProjekti = objDB.dbGetTable("SELECT * FROM tblProjekti"); DataTable dtAktiv
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);
}
}
如何解决加载子节点的问题?子节点是childNode的子节点。在上面的代码中将childNode添加到父节点后,您应该只需要另一个foreach语句和subchild数据。我已经尝试过了,但另一个问题是与第二个和第三个数据库表的关系。它不允许我创建新的数据集,填充第二个和第三个表,并在它们之间建立关系。