我在treeview是手动添加了根节点aa,bb,cc,dd它们都没有子节点,
就是aa 这样的,但是我想要的是aa()
bb bb()
cc cc()
dd dd() 我有一个表tbinfo里面有两个字段id,tname,这个表是用来存储我要添加的记录,
如:id tname 就是这样的,现在treeview里已经添加好节点了,就是从数据库里查出他们的个数,若数据库里没有
1 aa
2 aa
3 bb
4 cc就像以上这个表,那么在treeview里就应该是aa(2) 要的就是这样的结果!
bb(1)
cc(1)
dd(0)
就是aa 这样的,但是我想要的是aa()
bb bb()
cc cc()
dd dd() 我有一个表tbinfo里面有两个字段id,tname,这个表是用来存储我要添加的记录,
如:id tname 就是这样的,现在treeview里已经添加好节点了,就是从数据库里查出他们的个数,若数据库里没有
1 aa
2 aa
3 bb
4 cc就像以上这个表,那么在treeview里就应该是aa(2) 要的就是这样的结果!
bb(1)
cc(1)
dd(0)
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode NewNode = new TreeNode(dt.Rows[i][0].ToString() + "(" + dt.Rows[i][1].ToString() + ")");
this.treeView1.Nodes.Add(NewNode);
}
这样不行,这样只能显示表里有的节点,也就是表里面如果不存在dd那么就不会显示dd(0)这样的效果,再说了如果在treeview里手动添加了节点的话那么,这样也会重新添加节点,就成了
aa
bb
cc
dd
aa(1)
bb(1)
cc(0) 这样了,这样就不好了!
string cmdText = "SELECT COUNT(*) AS Count, tname FROM tbinfo GROUP BY tname DESC";
conn.Open();
SqlConnection conn = new SqlConnection(connString)
SqlCommand cmd = new SqlCommand(cmdText, conn);
SqlDataRead dr = cmd.ExecuteReader();
While(dr.Read()){
TreeNode NewNode = new TreeNode(dr.GetString("Count") + "(" + dr.GetString("tname") + ")")");
this.treeView1.Nodes.Add(NewNode);
}
dr.Close();
conn.Close();老实说我也只知道你要干什么,但是不知道你出了什么问题?
只能把过程写出来,但是没有经过测试,也只是在这 CSDN 的这个留言框里直接写。
语法应该会有错,毕竟用惯 VS 。你看看思路吧!
你可以把aa,bb,cc这些放在Tag属性里面,这样的话Node.Text = Node.Tag + "(" +num+")";
这样的话刷新之后因为Tag一直没有修改所以不会出现Text一直加的问题