C# winform Treenode 递归
现在有表,字段第一级目录默认UpID为0UpID关联上级KID现在我是直接把数据全部查询出来然后循环绑定到treeview上就根据UpID是否等于KID来绑定节点,就是不...
现在有表,字段第一级目录默认UpID为0 UpID关联上级KID 现在我是直接把数据全部查询出来然后循环绑定到treeview上就根据UpID是否等于KID来绑定节点,就是不知道怎么去绑,查资料说要用到递归,不知道怎么用啊,求指教
kid name UpID
1 军事 0
2 生活 0
3 健康菜肴 0
4 各国武器 1
5 日用品 2
6 附近美食 3
7 aaaa 4
8 dsssf 7 展开
kid name UpID
1 军事 0
2 生活 0
3 健康菜肴 0
4 各国武器 1
5 日用品 2
6 附近美食 3
7 aaaa 4
8 dsssf 7 展开
1个回答
展开全部
我给你一个
DataTable dt = new DataTable();
//窗体加载的时候获得数据源
private void Form1_Load(objectsender, EventArgs e)
{
SqlConnection con = newSqlConnection("server=.;uid=sa;pwd=;database=pubs");
SqlDataAdapter da = new SqlDataAdapter("select * from menuinfo",con);
this.treeView1.Nodes.Clear();
da.Fill(this.dt);
//添加父节点
TreeNode node =new TreeNode();
node.Tag =dt.Rows[0][0].ToString();
node.Text =dt.Rows[0][1].ToString();
this.treeView1.Nodes.Add(node);
this.Bind(node); //自定义方法 见下
}
public void Bind(TreeNode node)
{
DataRow[]drs = this.dt.Select("m_parent_id=" + node.Tag);
foreach (DataRow dr in drs)
{
TreeNode n = new TreeNode();
n.Tag = dr[0].ToString();
n.Text = dr[1].ToString();
node.Nodes.Add(n);
this.Bind(n);
}
}
DataTable dt = new DataTable();
//窗体加载的时候获得数据源
private void Form1_Load(objectsender, EventArgs e)
{
SqlConnection con = newSqlConnection("server=.;uid=sa;pwd=;database=pubs");
SqlDataAdapter da = new SqlDataAdapter("select * from menuinfo",con);
this.treeView1.Nodes.Clear();
da.Fill(this.dt);
//添加父节点
TreeNode node =new TreeNode();
node.Tag =dt.Rows[0][0].ToString();
node.Text =dt.Rows[0][1].ToString();
this.treeView1.Nodes.Add(node);
this.Bind(node); //自定义方法 见下
}
public void Bind(TreeNode node)
{
DataRow[]drs = this.dt.Select("m_parent_id=" + node.Tag);
foreach (DataRow dr in drs)
{
TreeNode n = new TreeNode();
n.Tag = dr[0].ToString();
n.Text = dr[1].ToString();
node.Nodes.Add(n);
this.Bind(n);
}
}
更多追问追答
追问
怎么老是提示我未找到m_parent_id
那一列呢
追答
把它替换成UpID
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询