动网论坛形式的无级分类生成树:
---------------------------------
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
---------------------------------
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
解决方案 »
- 【WPF Toolkit】怎样点击DataGrid的ColumnHeader排序?
- 跪求高人解答wpf无样式窗口改变窗口大小问题
- winform中datagridView控件标题栏背景设置问题?
- 关于爬虫
- Visual studio Team Foundation 在跟断点时出现的问题
- QQ空间 开发价格 特急!!!!在线求教
- 怎么样过滤掉DataSet里面重复的纪录
- C#在网络编程方面有什么好书
- “System.Data.SqlClient.SqlException: 用户 'JAN\ASPNET' 登录失败”,原因如何,怎样修改呢?(顶者也有分)
- 怎样做山寨的360安全桌面
- 数据连接
- 好不容易积了20分 马上来问 少了点 没办法
{
int n=0;
string aaa=myreader.GetValue(n).ToString();
TreeNode tn=new TreeNode();
tn.Text=aaa;
tv.Nodes[n].Nodes.Add(tn);
n++;
}===>
int n=0; while(myreader.Read())
{
string aaa=myreader.GetValue(n).ToString();
TreeNode tn=new TreeNode();
tn.Text=aaa;
tv.Nodes[n].Nodes.Add(tn);
n++;
}