这很难吗?
DataSet ds=new DataSet();
DataView dv;void Function()
{
   //这里使用select * from treetable获取所有的数据,并填充到ds中
   dv=ds.Tables[0].DefaultView;
   dv.RowFilter="ParentID=0";
   foreach(DataRowView drv in dv)
   {
      Response.Write("ID "+ drv["ID"]+ " All Child ID:"+GetChildID((int)drv["ID"]);
   }
}string GetChildID(int id)
{
   DataView dvTmp=ds.Tables[0].DefaultView;
   dvTmp.RowFilter="ParentID="+id;
   string strChildID=string.Empty;
   foreach(DataRowView drv in dvTmp)
   {
      strChildID+=drv["ID"]+",";
      strChildID+=GetChildID((int)drv["ID"]);
   }
   return strChildID;
}