读书人

DataTable循环找到该节点下的所有子节

发布时间: 2013-06-19 10:26:41 作者: rapoo

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.Page
{
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());
}
}
}
c#
[解决办法]
GetAllNodes(dr["up_id"].ToString());
===》

GetAllNodes(dr["id"].ToString());
[解决办法]
GetAllNodes(dr["up_id"].ToString());

dr["id"]
[解决办法]
递归死循环,这里修改一下:GetAllNodes(dr["up_id"].ToString());》GetAllNodes(dr["id"].ToString());

读书人网 >C#

热点推荐