DataTable循环找出该节点下的所有子节点
数据表tab有两个字段:id和up_id
id up_id
1 0
2 1
3 1
4 2
我现在要找出id为1下面的所有子节点,包括子节点下面的子节点,这里的子节点包含(2,3,4)
我的代码如下,运行时出现死循环,求指点。
public partial class test : System.Web.UI.Pagec#
{
string nodes = string.Empty;
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
string str = ConfigurationManager.ConnectionStrings["connStr"].ToString();
SqlConnection conn = new SqlConnection(str);
SqlDataAdapter adp = new SqlDataAdapter("select * from tab", conn);
adp.Fill(dt);
GetAllNodes("1");
Response.Write(nodes);
}
private void GetAllNodes(string id)
{
DataRow[] drs = dt.Select("up_id=" + id);
if (drs.Length <= 0) return;
foreach (DataRow dr in drs)
{
nodes += dr["id"].ToString() + ",";
GetAllNodes(dr["up_id"].ToString());
}
}
}
GetAllNodes(dr["up_id"].ToString());