asp实现树型结构

时间:2022-09-18 21:26:58
  1. <!--   
  2. -----------[test]表生成脚本---------------  
  3. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)  
  4. drop table [dbo].[test]  
  5. GO  
  6.  
  7. CREATE TABLE [dbo].[test] (  
  8.  [id] [int] IDENTITY (1, 1) NOT NULL ,  
  9.  [str_note] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  
  10.  [father_id] [int] NULL   
  11. ) ON [PRIMARY]  
  12. GO  
  13. -->  
  14. <!--   
  15. ***********************测试数据********************  
  16. [id][str_note][father_id]  
  17. [1][电脑书籍][0]  
  18. [2][软件开发][1]  
  19. [3][硬件维修][1]  
  20. [4][asp][2]  
  21. [5][php][2]  
  22. [6][jsp][2]  
  23. [7][html][2]  
  24. [8][显示器维修][3]  
  25. [9][主板维修][3]  
  26. [10][显卡维修][3]  
  27. [11][vbs基础][4]  
  28. [12][html基础][4]  
  29. [13][ado基础][4]  
  30. [14][do语句][11]  
  31. [15][for语句][11]  
  32. [16][select语句][11]  
  33. ***************************************************  
  34. -->  
  35. <%  
  36. Dim strconn,conn,rs,sql  
  37. strconn="Driver={sql server};server=localhost;database=wawavote;uid=sa;pwd=sa;"  
  38. Dim i  
  39. i=0  
  40. Function ShowTree(parentID)  
  41.  i=i+1  
  42.  Dim rs  
  43.  Set rs = Server.CreateObject("ADODB.RecordSet")  
  44.  sql="SELECT id, str_note, father_id,(SELECT str_note FROM test t2 WHERE t2.id = t1.father_id) AS ParentName  FROM test t1 WHERE t1.father_id="&Cint(parentID)  
  45.  rs.open sql,strconn,1,1  
  46.  Do While Not rs.Eof  
  47.   for j=1 to i  
  48.    Response.Write("---")  
  49.   next  
  50.   Response.Write(rs(1)&"["&rs(3)&"]<br>")  
  51.   ShowTree rs(0)  
  52.   i=i-1  
  53.  rs.Movenext  
  54.  Loop  
  55.  rs.Close:Set rs=Nothing   
  56. End Function  
  57. Sub ShowTable(table)  
  58.  Dim rs  
  59.  Set rs = Server.CreateObject("ADODB.RecordSet")  
  60.  sql="select * from "&trim(table)  
  61.  rs.open sql,strconn,1,1  
  62.  For i=0 To rs.Fields.Count-1  
  63.   Response.Write("["&rs.fields(i).Name&"]")  
  64.  next  
  65.  Response.Write("<br>")  
  66.  Do While Not rs.Eof  
  67.   For i=0 To rs.Fields.Count-1  
  68.    Response.Write("["&rs.fields(i).Value&"]")  
  69.   next  
  70.   Response.Write("<br>")  
  71.  rs.MoveNext  
  72.  Loop  
  73.  rs.Close:Set rs=Nothing   
  74. End sub  
  75. ShowTree(0)  
  76. ShowTable("test")  
  77. %>