asp实现树型结构

  蛙蛙推荐:asp实现树型结构     选择自 onlytiancai 的 Blog

  关键字   蛙蛙推荐:asp实现树型结构

  出处

  <!--

  -----------[test]表生成脚本---------------

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

  drop table [dbo].[test]

  GO

  CREATE TABLE [dbo].[test] (

  [id] [int] IDENTITY (1, 1) NOT NULL ,

  [str_note] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

  [father_id] [int] NULL

  ) ON [PRIMARY]

  GO

  -->

  <!--

  ***********************测试数据********************

  [id][str_note][father_id]

  [1][电脑书籍][0]

  [2][软件开发][1]

  [3][硬件维修][1]

  [4][asp][2]

  [5][php][2]

  [6][jsp][2]

  [7][html][2]

  [8][显示器维修][3]

  [9][主板维修][3]

  [10][显卡维修][3]

  [11][vbs基础][4]

  [12][html基础][4]

  [13][ado基础][4]

  [14][do语句][11]

  [15][for语句][11]

  [16][select语句][11]

  ***************************************************

  -->

  <%

  Dim strconn,conn,rs,sql

  strconn="Driver={sql server};server=localhost;database=wawavote;uid=sa;pwd=sa;"

  Dim i

  i=0

  Function ShowTree(parentID)

  i=i+1

  Dim rs

  Set rs = Server.CreateObject("ADODB.RecordSet")

  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)

  rs.open sql,strconn,1,1

  Do While Not rs.Eof

  for j=1 to i

  Response.Write("---")

  next

  Response.Write(rs(1)&"["&rs(3)&"]<br>")

  ShowTree rs(0)

  i=i-1

  rs.Movenext

  Loop

  rs.Close:Set rs=Nothing

  End Function

  Sub ShowTable(table)

  Dim rs

  Set rs = Server.CreateObject("ADODB.RecordSet")

  sql="select * from "&trim(table)

  rs.open sql,strconn,1,1

  For i=0 To rs.Fields.Count-1

  Response.Write("["&rs.fields(i).Name&"]")

  next

  Response.Write("<br>")

  Do While Not rs.Eof

  For i=0 To rs.Fields.Count-1

  Response.Write("["&rs.fields(i).Value&"]")

  next

  Response.Write("<br>")

  rs.MoveNext

  Loop

  rs.Close:Set rs=Nothing

  End sub

  ShowTree(0)

  ShowTable("test")

  %>