c# 在treeview中 获取所有子节点的名称

-aa-bb-cc-dd例如如何获取cc和dd的名称... - aa

- bb
- cc
- dd
例如 如何获取cc 和dd的名称
展开
 我来答
moonshijunli
推荐于2016-06-17 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:31.7万
展开全部
一个SQL就可以搞定的;
直接SQL写递归算法;
但是需要一个根节点的哈;

我简单写了一个Demo,思路就是这样的:
DataTable dt = bf.ExecuteTable(strSql); //strSql 就写一个存储过程,然后取出你需要的节点数据
TreeNodeCollection TreeNodeCol = new TreeNodeCollection();
TreeNodeCol = GetAllTreeNode(TreeNodeCol, -1, dt);
//加载到树
foreach (TreeNode node in TreeNodeCol)
{
YourTreeViewID.Nodes.Add(node);
}

//递归方法
private TreeNodeCollection GetAllTreeNode(TreeNodeCollection Nodes, int fid, DataTable dt)
{
TreeNode node; //递归寻找子节点
DataRow[] rows = dt.Select("fid=" + fid);
foreach (DataRow row in rows)
{
node = new TreeNode();
node.Value = row["id"].ToString(); //ID 对应Value
node.Text = row["mc"].ToString(); //名称 对应 Text
node.Target = "YourTreeName";
Nodes.Add(node);
GetAllTreeNode(node.ChildNodes, Convert.ToInt32(node.Value), dt);
}
return Nodes;
}

帮人帮到底,我把SQL也跟你简单写一个吧:
WITH CET ( id, fid,mc )AS
(
SELECT id ,fid,mc
FROM YourTableName --你的数据表
WHERE id = @YourRootId --你的根节点

UNION ALL

SELECT t.id ,t.fid,t.mc
FROM YourTableName t --你的数据表
JOIN CET ct ON t.fid = ct.id
)
SELECT * FROM CET ;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-04-26
展开全部
foreach (TreeNode node in trvBarCode.Nodes[0].Nodes[bb])
{
MessageBox.Show(node.Text.tostring());
}
大概是这意思吧,语法忘记了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sym544135698
2014-06-04 · 超过15用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:40.8万
展开全部
是所有子节点的名称吗?用递归算法。。
追问
知道用递归 不会用 我才学没几天
追答
你取得了名称是要怎么用?是只是获取,然后放到List里面?数组里面?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式