以下是使用行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?
谢谢!