如何使用 OLEDB 按 ID 和 parentID 填充树视图
How can i populate a treeview by ID and parentID using OLEDB
我有一个大问题。我想用我得到的一些数据填充树视图。
有一个根节点。我想向这个根节点添加一些由我的数据定义的其他节点。数据包括姓名、ID 和 ParentID
数据存储在 OLEDB 中,但我也已经存储在我的程序中。
让我举个例子,因为我的英语不是最好的:
数据:
测试数据 1 0
测试数据1 2 0
测试数据3 3 1
测试数据4 4 2
测试数据5 5 3
测试数据6 6 4
测试数据7 7 4
所以我的树看起来应该类似于:
+根
++测试数据1
++++测试数据3
++++++测试数据5
++测试数据2
++++测试数据4
++++++测试数据6
++++++测试数据7
你知道我怎样才能做到这一点吗?
问候
施林格
您将需要一种递归方法来遍历树。
private void AddNode(List<Data> data, int parent)
{
var parent = data.FirstOrDefault(x => x.ID == parent);
var dataItems = data.Where(x => x.Parent == parent);
foreach(var dataItem in dataItems)
{
AddNode(data, dataItem.ID);
}
Tree.Nodes.Add(parent.Name);
}
我有一个大问题。我想用我得到的一些数据填充树视图。
有一个根节点。我想向这个根节点添加一些由我的数据定义的其他节点。数据包括姓名、ID 和 ParentID
数据存储在 OLEDB 中,但我也已经存储在我的程序中。
让我举个例子,因为我的英语不是最好的:
数据:
测试数据 1 0
测试数据1 2 0
测试数据3 3 1
测试数据4 4 2
测试数据5 5 3
测试数据6 6 4
测试数据7 7 4
所以我的树看起来应该类似于:
+根
++测试数据1
++++测试数据3
++++++测试数据5
++测试数据2
++++测试数据4
++++++测试数据6
++++++测试数据7
你知道我怎样才能做到这一点吗?
问候
施林格
您将需要一种递归方法来遍历树。
private void AddNode(List<Data> data, int parent)
{
var parent = data.FirstOrDefault(x => x.ID == parent);
var dataItems = data.Where(x => x.Parent == parent);
foreach(var dataItem in dataItems)
{
AddNode(data, dataItem.ID);
}
Tree.Nodes.Add(parent.Name);
}