这涉及到无限级分类数据库 aaa
id name c d (c 代表是否父节点 d代表是否末级 1是 0不是)
1 电脑 0 1
2 手机 0 1
3 nokia 2 0
4 samsun 2 0
5 饮料 0 1
6 橙汁 5 0
7 雪碧 5 0
8 可乐 5 0select * form aaa 把这个结果集用DATATABLE返回我在WINFROM里TreeView以树的形式表现 TreeMenu.Nodes.Clear();
DataTable dtTree = GetAllTreeInfo();//数据库aaa传来的结果集
foreach (DataRow dr in dtTree.Rows)
{
TreeNode tmpNode = new TreeNode();
tmpNode.Tag = dr["id"].ToString();
tmpNode.Text = dr["name"].ToString(); if (dr["c"].ToString() == "0")
{
TreeMenu.Nodes.Add(tmpNode);
if (dr["d"].ToString() == "0")
{
//子节点这里代码不知道怎么写了 高手指点
tmpNode.Nodes.Add(dr["name"].ToString());
} }
id name c d (c 代表是否父节点 d代表是否末级 1是 0不是)
1 电脑 0 1
2 手机 0 1
3 nokia 2 0
4 samsun 2 0
5 饮料 0 1
6 橙汁 5 0
7 雪碧 5 0
8 可乐 5 0select * form aaa 把这个结果集用DATATABLE返回我在WINFROM里TreeView以树的形式表现 TreeMenu.Nodes.Clear();
DataTable dtTree = GetAllTreeInfo();//数据库aaa传来的结果集
foreach (DataRow dr in dtTree.Rows)
{
TreeNode tmpNode = new TreeNode();
tmpNode.Tag = dr["id"].ToString();
tmpNode.Text = dr["name"].ToString(); if (dr["c"].ToString() == "0")
{
TreeMenu.Nodes.Add(tmpNode);
if (dr["d"].ToString() == "0")
{
//子节点这里代码不知道怎么写了 高手指点
tmpNode.Nodes.Add(dr["name"].ToString());
} }
{
TreeNode tempNode; for (int i = 0; i < dt.Rows.Count; i++)
{ if (ParentNode == null)
{
tempnode = tvwProduct.Nodes.Add(dt.Rows[i]["Name"].ToString());
tempNode.Tag = dt.Rows[i]["id"].ToString();
}
else
{
if (dt.Rows[i]["c"].ToString() == ParentNode.Tag)
{
tempnode = ParentNode.Nodes.Add(dt.Rows[i]["Name"].ToString()); }
}
LoadTrea(dt, tempNode);
}
}
{
TreeNode tmpNode = new TreeNode();
tmpNode.Text = dr[1].ToString();
tmpNode.Tag = dr[0];
treeView1.Nodes.Add(tmpNode);
}
else
{
TreeNode tmpNode = new TreeNode();
tmpNode.Text = dr[1].ToString();
tmpNode.Tag = dr[0];
for (int i = 0; i < treeView1.Nodes.Count; i++)
{
if ((int)dr[2] == (int)treeView1.Nodes[i].Tag)
{
treeView1.Nodes[i].Nodes.Add(tmpNode);
break;
}
}
}