我在数据库中有两个表关系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);
}
}
}
子项是字段描述中的值。
我知道如何手动将孩子添加到每个家长,但我坚持不动它应该是动态的。
答案 0 :(得分:1)
子项是字段描述中的值。
如果您的意思是列 Description
。它应该是这样的:
foreach (DataRow childRow in masterRow.GetChildRows("Children"))
{
masterNode.Nodes.Add(new TreeNode(childRow["Description"].ToString()));
}