using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; public partial class Default2 : System.Web.UI.Page { string conString = ConfigurationManager.ConnectionStrings["heihei"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { DataTable dt = SelectAllFather(); foreach(DataRow dr in dt.Rows) { string nodesid = dr[0].ToString(); string displayname = dr[1].ToString(); TreeNode fatherNode = this.CreatTreeNode(displayname, nodesid); CreateChildTree(nodesid, fatherNode); TreeView1.Nodes.Add(fatherNode); } } private void CreateChildTree(string nodesid, TreeNode fatherNode) { DataTable dt = SelectAllChildById(nodesid); foreach (DataRow dr in dt.Rows) { string cinodeid = dr[0].ToString(); string cinodename = dr[1].ToString(); TreeNode tnode = CreatTreeNode(cinodename, cinodeid); AddTree(fatherNode, tnode); } } private TreeNode CreatTreeNode(string displayname, string nodesid) { TreeNode newnode = new TreeNode(); newnode.Text = displayname; newnode.Value = nodesid; return newnode; } private void AddTree(TreeNode fatherNode, TreeNode tnode) { fatherNode.ChildNodes.Add(tnode); } //选出所有的父类 public DataTable SelectAllFather() { string sql = "select * from tb_Father"; DataTable dt = new DataTable(); SqlConnection conn = new SqlConnection(conString); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); dt.Load(dr); return dt; } //根据id选出所有的子类 public DataTable SelectAllChildById(string id) { string sql = "select * from tb_Son where father_Id =" + id + ""; DataTable dt = new DataTable(); SqlConnection conn = new SqlConnection(conString); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); dt.Load(dr); return dt; } }