数据表结构 
CREATE TABLE DEPARTMENT_TREE(  
        DEPARTMENT_CODE Char(10) , 
        DESCRIPTION Char(50) , 
        PARENT_DEPART char(10) , 
        SHORTDESC char(10) 
) 请专家用ASP.NET+VB脚本写个树,要源代码,本人写的树程序总是出错,又无例可借签,研究的脑子都发酸,谢了!!

解决方案 »

  1.   

    C#写的,给你参考 public DataTable GetTreeSorcue()
            {
                StringBuilder sql = new StringBuilder();            sql.Append("   SELECT TO_CHAR(PARENT_ID || '.' || CHILDID) CHILD_ID,   ");
                sql.Append("          TO_CHAR(PARENT_ID) PARENT_ID,   ");
                sql.Append("          OBJECT_NAME,   ");
                sql.Append("          OBJECT_TYPE   ");
                sql.Append("     FROM (SELECT ROW_NUMBER() OVER(PARTITION BY PARENT_ID ORDER BY PARENT_ID) CHILDID,   ");
                sql.Append("                  PARET.PARENT_ID,   ");
                sql.Append("                  CHLD.OBJECT_NAME,   ");
                sql.Append("                  CHLD.OBJECT_TYPE   ");
                sql.Append("              ");
                sql.Append("             FROM (SELECT OBJECT_TYPE, OBJECT_NAME   ");
                sql.Append("                     FROM USER_OBJECTS   ");
                sql.Append("                    WHERE OBJECT_TYPE IN   ");
                sql.Append("                          ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW')   ");
                sql.Append("                    ORDER BY OBJECT_TYPE, OBJECT_NAME) CHLD,   ");
                sql.Append("                  (SELECT OBJECT_TYPE, ROWNUM PARENT_ID   ");
                sql.Append("                     FROM (SELECT DISTINCT OBJECT_TYPE   ");
                sql.Append("                             FROM USER_OBJECTS   ");
                sql.Append("                            WHERE OBJECT_TYPE IN   ");
                sql.Append("                                  ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW')   ");
                sql.Append("                            ORDER BY OBJECT_TYPE)) PARET   ");
                sql.Append("            WHERE CHLD.OBJECT_TYPE = PARET.OBJECT_TYPE)   ");
                sql.Append("   UNION   ");
                sql.Append("   SELECT TO_CHAR(ROWNUM) CHILD_ID,   ");
                sql.Append("          '0' PARENT_ID,   ");
                sql.Append("          OBJECT_TYPE OBJECT_NAME,   ");
                sql.Append("          OBJECT_TYPE   ");
                sql.Append("     FROM (SELECT DISTINCT OBJECT_TYPE   ");
                sql.Append("             FROM USER_OBJECTS   ");
                sql.Append("            WHERE OBJECT_TYPE IN   ");
                sql.Append("                  ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW')   ");
                sql.Append("            ORDER BY OBJECT_TYPE)   ");
                sql.Append("    ORDER BY PARENT_ID, CHILD_ID   ");            SendMail.SendDebug("Oracle源碼樹結構"+sql.ToString());
                DataTable dt = new DAL().GetDataTable(sql.ToString());
                return dt;
            }
     private void BindTree()
            {
                TreeNode root = new TreeNode();
                root.Text = "Baoxuan";
                Tree1.Nodes.Add(root);
                AddNodes("0", null);
            }
      private void AddNodes(string parentId, TreeNode tn)
            {
                           DataTable dt = new Buss().GetTreeSorcue();
                DataView dv = dt.DefaultView;
                dv.RowFilter = "[parent_id]='" + parentId + "'";            foreach (DataRowView dr in dv)
                {
                    TreeNode ctn = new TreeNode();
                    if (tn == null)
                    {
                        string name = dr["object_name"].ToString();
                        string id = dr["CHILD_ID"].ToString();
                        ctn.Value = name;                    
                        ctn.Expanded = false;
                        
                        Tree1.Nodes[0].ChildNodes.Add(ctn);
                        AddNodes(id, ctn);
                    }
                    else
                    {
                        string name = dr["object_name"].ToString();
                        string type = dr["object_type"].ToString();
                        string id = dr["CHILD_ID"].ToString();
                        ctn.Value = name;
                        ctn.Expanded = false;
                        ctn.Target = "Update";                      
                        ctn.NavigateUrl = "updatedatabase.aspx?type=" + type + "&name=" + name;
                        tn.ChildNodes.Add(ctn);
                        AddNodes(id, ctn);
                    }
                }
            }
      

  2.   

    C#代码的看不明白,本人不懂C#,最好有哪位老大来个VB脚本的,在线继续等!!!!!!!
      

  3.   

    VB版的,说实在的,网上比较少。C#已经快成了.net的代名词了。现在搞.net基本都是搞C#的。
    如果你实在看不懂C#的话,可以去孟子的网站上看看,一般他的上面都提供两个语言的版本的。
      

  4.   

    我一直在努力把上面的C#代码转成VB的,转是转完了,一调试,不是这出错就是哪出错!!!
    楼上的朋友说的孟子网站,地址给贴出来吗