.net树状图显示问题!急!!!!!!!!!!!!!!!!
数据库有三个表  
零件表 NCMS_PARTS(OBJECT_ID 主键,PARTS_SN),  
NCMS_PRODUCT_STRUCT_RELATION(这个表就两个字段,PARENT_ID,CHILD_ID)   ,
产品表 NCMS_PRODUCTS(OBJECT_ID 主键 ,PRODUCT_SN)
要求显示树状图。B/S页面。
求全部代码。。。
------解决方案--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
       if (!IsPostBack)
       {
           bindTreeView();
       }
   }
   private void bindTreeView()
   {
       DataTable dt = new DataTable();
       try
       {
           string str = "此处是连接你数据库的语句";
           SqlConnection con = new SqlConnection();
           con.ConnectionString = str;
           SqlCommand cmd = new SqlCommand();
           cmd.CommandType = CommandType.Text;
           cmd.CommandText = "select * from  table";  //此处是要从数据库取出的数据  根据你的情况 设定相应的查询语句
           cmd.Connection = con;
           SqlDataAdapter sqldap = new SqlDataAdapter();
           sqldap.Fill(dt);
       }
       catch (Exception err)
       {
           throw new Exception(err.Message);
       }
       FirstItemFill(dt);
   }
//此处是添加产品目录
   private void FirstItemFill(DataTable dt)
   {
       TV.Nodes.Clear();                          //TV是你添加的TreeView控件名
       DataRow[] drs = dt.Select("ParentID=-1"); 
       foreach (DataRow dr in drs)
       {
           TreeNode tNode = new TreeNode();
           tNode.Text = dr["NodeName"].ToString();
           tNode.Value = dr["ID"].ToString();
           if (dr["IsLeaf"].ToString() == "0")
           {
               tNode.SelectAction = TreeNodeSelectAction.Expand;
           }
           else
           {
               tNode.SelectAction = TreeNodeSelectAction.SelectExpand;
           }
           TV.Nodes.Add(tNode);
           DataRow[] childdrs = dt.Select("ParentID=" + dr["ID"].ToString());
           //DataRow[] childdrs = dt.Select("ParentID=" + tNode.Value);
           FillNextNode(tNode, childdrs, dt);
       }
   }
   private void FillNextNode(TreeNode tNode, DataRow[] drs, DataTable dt)
   {
       foreach (DataRow dr in drs)
       {
           TreeNode cNode = new TreeNode();
           cNode.Text = dr["NodeName"].ToString();
           cNode.Value = dr["ID"].ToString();
           if (dr["IsLeaf"].ToString() == "0")    //islesf表示 是否是叶子节点
           {
               cNode.SelectAction = TreeNodeSelectAction.Expand;
           }
           else
           {
               cNode.SelectAction = TreeNodeSelectAction.SelectExpand;
           }
           tNode.ChildNodes.Add(cNode);
           DataRow[] childdrs = dt.Select("ParentID=" + dr["ID"].ToString());
           FillNextNode(cNode, childdrs, dt);
       }
   }
}
/*如果你不想修改绑定TreeView部分的代码   那么你就在数据库创建一个临时表  这个临时表  
包含 三个表的信息 并且 添加ParentID,IsLeaf,两个列  这两个列的值很好取  如果是产品 ParentID 取-1 isleaf 取-1
  如果是零件 则ParentID取0  isleaf取0 */
------解决方案--------------------
给个简单点的给你看
  TreeView TreeView1 = new TreeView();//实例化一个树状图
       protected void Page_Load(object sender, EventArgs e)
       {
           TreeView1.SelectedNodeChanged +=