您的位置:首页 > 数据库

递归方法读取数据库中的数据,添加到TreeView中

2012-04-10 20:25 423 查看
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

DataTable dt = new DataTable();

ReturnDataTable(dt);

TreeNode node = null;

Add_Tree(dt, node);



}

private void Add_Tree(DataTable dt, TreeNode node)

{

DataView dv = new DataView(dt);

if (node == null) //根结点

{

dv.RowFilter = "parentid='0'"; //筛选到根结点的所有子节点

}

else //不是根结点

{

dv.RowFilter = "parentid='" + node.Value + "'"; //筛选对应节点的所有子节点

}

foreach (DataRowView drv in dv) //遍历填充节点的所有子节点,如果传入的节点node为叶子节点,遍历要退出,不再进行递归

{

TreeNode no = new TreeNode(drv["name"].ToString(), drv["id"].ToString());

Add_Tree(dt, no); //填充no节点的子节点

if (node == null)

{

this.TreeView1.Nodes.Add(no);

}

else

{

node.ChildNodes.Add(no);

}

}

}



private static void ReturnDataTable(DataTable dt)

{

string str = "server=.\\sqlexpress;initial catalog=mytest1;integrated security=true";

using (SqlConnection con = new SqlConnection(str))

{

using (SqlCommand cmd = new SqlCommand("select * from YaoPin", con))

{

using (SqlDataAdapter sda = new SqlDataAdapter(cmd))

{

sda.Fill(dt);

}

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: