从子节点检索id

时间:2012-10-19 04:04:56

标签: c# asp.net

以下是使用行id和parent_id

生成数据库构造的树的代码
   private void buildTree()
   {
        SqlConnection dbCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        dbCon.Open();
        string sql = "Select * from [node]";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, dbCon);

        DataSet ds = new DataSet();

        adapter.Fill(ds);
        dbCon.Close();

        ds.Relations.Add("NodeRelation", ds.Tables[0].Columns["id"], ds.Tables[0].Columns["parent_id"]);
        foreach (DataRow dbRow in ds.Tables[0].Rows)
        {
            if (dbRow.IsNull("parent_id"))
            {
                this.content += dbRow["title"].ToString() + "<br>";
                PopulateSubTree(dbRow, content);
            }
        }
    }

    private void PopulateSubTree(DataRow dbRow, string content)
    {
        foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
        {
            string newLine = childRow["title"].ToString();
            this.content += newLine + "<br>";
            PopulateSubTree(childRow, content);
        }
    }

错误是当我尝试使用函数id内的childRow["id"].ToString()检索子节点的PopulateSubTree时,我得到的值是行的parent_id,而不是{ {1}}

例如:

id

如果我使用id title parent_id 4 ABC 5 childRow["id"].ToString(),则返回的实际值为5,任何人都会看到问题所在?以及如何获得4?

谢谢!

0 个答案:

没有答案