標籤:write dataset code string ast nod tar 自己 prot
遞迴,就是有去有回,自己調用自己。
1 public partial class SiteMaster : MasterPage 2 { 3 public DataSet list = null; 4 5 public List<TreeData> treeDatas = new List<TreeData>(); 6 string str = ""; 7 protected void Page_Load(object sender, EventArgs e) 8 { 9 if (LoginMITBz.currentUser == null)10 {11 Response.Redirect("/Login/Login.aspx");12 }13 string sql = "SELECT a.Title,a.TreeId,a.Url,a.ParentID,a.ParentPath FROM dbo.M_Tree a INNER JOIN dbo.M_Permissions b ON a.TreeId = b.TreeId WHERE b.UserId=" + LoginMITBz.currentUser.UserId;14 list = Hy.DBSqlU.DBUtility_USA.DbHelperSQLDB_USA_MIT_MitInfo.Query(sql);15 #region Test16 17 //foreach (DataRow mDr in list.Tables[0].Rows)18 // {19 // DataColumn mDc = list.Tables[0].Columns[0];20 //Console.WriteLine(mDr["Title"].ToString());21 //Console.WriteLine(mDr["Url"].ToString());22 23 // //foreach (DataColumn mDc in list.Tables[0].Columns)24 // //{25 // // Console.WriteLine(mDr["Title"].ToString());26 // // Console.WriteLine(mDr["Url"].ToString());27 // //}28 //}29 #endregion30 31 foreach (DataRow mDr in list.Tables[0].Rows)32 {33 DataColumn mDc = list.Tables[0].Columns[0];34 TreeData tree = new TreeData();35 tree.TreeId = (long)mDr["TreeId"];36 tree.Title = mDr["Title"].ToString();37 tree.Url = mDr["Url"].ToString();38 tree.ParentId = (int)mDr["ParentID"];39 treeDatas.Add(tree);40 }41 42 43 var data = treeDatas.Where(a => a.ParentId == 0);44 foreach (var item in data)45 {46 str += item.Title + ":" + item.Url + "\r\n";47 GetNode((int)item.TreeId);48 }49 }50 51 public void GetNode(int parentId)52 {53 var data = treeDatas.Where(a => a.ParentId == parentId);54 foreach (var item in data)55 {56 str += item.Title + ":" + item.Url + "\r\n";57 GetNode((int)item.TreeId);58 }59 }60 }61 62 63 64 public class TreeData65 {66 public long? TreeId { get; set; }67 public int? ParentId { get; set; }68 public string Title { get; set; }69 public string Url { get; set; }70 }
C#遞迴載入樹