usingSystem;
usingSystem.Collections;
usingSystem.Collections.Generic;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Linq;
usingSystem.Reflection;
usingsystem.web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
namespaceEasyuitree
{
PublicPartialclassWebForm1:System.Web.UI.Page
{
protectedvoidPage_Load (Objectsender, EventArgs e)
{
}
List<tree> Listtreeall =NewList<tree> ();
Tree Treeall =NewTree ();
PublicTree Bindnew (tree node)
{
DataTable dr = Getreader (node.id);
Tree n =NewTree ();
for(inti =0; I < Dr. Rows.Count; i++)
{
if(Convert.ToInt32 (Dr. rows[i]["PID"]) ==0)
{
N.id = Convert.ToInt32 (Dr. rows[i]["ID"]);
N.text = Dr. rows[i]["text"]. ToString ();
N.pid = Convert.ToInt32 (Dr. rows[i]["PID"]);
N.child = Getchild (n);
}
}
returnN
}
Publiclist<tree> Getchild (tree node)
{
DataTable dr = Getreader (node.id);
list<tree> Child =NewList<tree> ();
for(inti =0; I < Dr. Rows.Count; i++)
{
Tree n =NewTree ();
N.id = Convert.ToInt32 (Dr. rows[i]["ID"]);
N.text = Dr. rows[i]["text"]. ToString ();
N.pid = Convert.ToInt32 (Dr. rows[i]["PID"]);
Child. ADD (n);
DataTable DR1 = Getreader (n.id);
if(DR1! =NULL)
{
N.child = Getchild (n);
}
}
returnChild
}
/// <summary>
///Test
/// </summary>
/// <param name= "Sender" ></param>
/// <param name= "E" ></param>
protectedvoidButton1_Click (Objectsender, EventArgs e)
{
Tree model =NewTree ();
Model.id =0;
Bindnew (model);//Recursive
list<tree> list =NewList<tree> ();
List. ADD (Bindnew (model));
}
PublicDataTable Getreader (intpid
{
stringsql ="SELECT * from t_tree where pid ="+ PID +" ";//where pid = "+ pid +" ";
stringConnectionString ="uid=sa;pwd=qazwsx;initial Catalog=testdbase;data source=desktop-hkira54; Connect timeout=900";
using(SqlConnection con =NewSqlConnection (ConnectionString))
{
SqlCommand cmd =NewSqlCommand (sql, con);
Con. Open ();
DataSet ds =NewDataSet ();
SqlDataAdapter adapter =NewSqlDataAdapter ();
Adapter. SelectCommand = cmd;
Adapter. Fill (DS);
DataTable table = ds. tables[0];
returnTable
}
}
}
Public classTree
{
PublicintID {Get;Set; }
PublicstringText {Get;Set; }
PublicintPID {Get;Set; }
PublicList<tree> Child {Get;Set; }
}
The most primitive tree recursive use of C #