动网论坛形式的无级分类生成树:
---------------------------------
private void button3_Click(object sender, System.EventArgs e)
{ SqlConnection cnn=new SqlConnection("server=BEAR;user id=sa;initial catalog=123;persist security info=True;");
cnn.Open();

TreeNode node=new TreeNode();
treeView1.Nodes.Add(ShowAllTree(0,cnn,node)); //根节是以PID为0标志的 cnn.Close();
}private TreeNode ShowAllTree(int id,SqlConnection cnn,TreeNode node)
{ string sqlSelect = "SELECT id,pid FROM [1] where pid ='"+id+"'";
SqlDataAdapter da = new SqlDataAdapter(sqlSelect,cnn);
DataTable dt=new DataTable();
da.Fill(dt);

for(int i=0;i<dt.Rows.Count;i++)           
{
TreeNode newNode=new TreeNode(dt.Rows[i][0].ToString());
node.Nodes.Add(newNode); int newID = (int)dt.Rows[i][0];; ShowAllTree(newID,cnn,newNode); //递归调用,将子结点ID当做下一当前结点ID }
dt.Dispose();
da.Dispose(); return node;
}测试数据表1:
id pid
1 0
2 1
3 2
4 3
5 1
6 0
7 0
8 6