数据库Access,字段:ClassID(主键),ParentClassID,ClassName,3个字段都是文本型。
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
    <head>
 <title>ASP无限分类数据库版</title>
        <title>ASP无限分类数据库版</title>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <meta name="Generator" content="EditPlus">
        <meta name="Generator" content="EditPlus">
 <meta name="Author" content="Dicky;QQ:25941">
        <meta name="Author" content="Dicky;QQ:25941">
 <meta name="Keywords" content="Dicky;QQ:25941;ASP无限分类数据库版">
        <meta name="Keywords" content="Dicky;QQ:25941;ASP无限分类数据库版">
 <meta name="Description" content="Dicky;QQ:25941;ASP无限分类数据库版">
        <meta name="Description" content="Dicky;QQ:25941;ASP无限分类数据库版">
 </head>
    </head>

 <body>
    <body>
 <%
        <%
 Const IsSql = 0    '定义数据库类型,1为SQL Server,0为Access
        Const IsSql = 0    '定义数据库类型,1为SQL Server,0为Access
 Function OpenConn(Conn)     '打开数据库连接
        Function OpenConn(Conn)     '打开数据库连接
 Dim ConnStr
            Dim ConnStr 
 If IsSql = 1 Then '如果是SQL Server数据库
            If IsSql = 1 Then '如果是SQL Server数据库 
 'SQL Server数据库连接参数:用户名、用户密码、数据库名、连接名(本地用local,外地用IP)
                'SQL Server数据库连接参数:用户名、用户密码、数据库名、连接名(本地用local,外地用IP) 
 Dim SqlUsername,SqlPassword,SqlDatabaseName,SqlLocalName
                Dim SqlUsername,SqlPassword,SqlDatabaseName,SqlLocalName 
 SqlUsername = "sa"
                SqlUsername = "sa" 
 SqlPassword = ""
                SqlPassword = "" 
 SqlDatabaseName = "TreeDb"
                SqlDatabaseName = "TreeDb" 
 SqlLocalName = "(local)"
                SqlLocalName = "(local)" 
 ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
                ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";" 
 Else  '如果是Access数据库
            Else  '如果是Access数据库 
 Dim Db
                Dim Db 
 '第一次使用请修改本处数据库地址并相应修改数据库名称,如将Dicky.mdb修改为Dicky.asp(防止恶意下载Access数据库)
                '第一次使用请修改本处数据库地址并相应修改数据库名称,如将Dicky.mdb修改为Dicky.asp(防止恶意下载Access数据库) 
 Db = "TreeDB.mdb"
                Db = "TreeDB.mdb" 
 ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(Db)
                ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(Db)
 End If
            End If 
 On Error Resume Next
            On Error Resume Next 
 Set Conn = Server.CreateObject("ADODB.Connection")
            Set Conn = Server.CreateObject("ADODB.Connection") 
 Conn.Open ConnStr
            Conn.Open ConnStr 
 If Err Then
            If Err Then 
 '        Err.Clear
        '        Err.Clear 
 Set Conn = Nothing
                Set Conn = Nothing 
 Response.Write "数据库连接出错,请检查连接字串。"
                Response.Write "数据库连接出错,请检查连接字串。" 
 Response.End
                Response.End 
 End If
            End If 
 End Function
        End Function

 Function CloseConn(Conn)  '关闭数据库连接
        Function CloseConn(Conn)  '关闭数据库连接 
 If IsObject(Conn) Then
            If IsObject(Conn) Then
 Conn.Close
                Conn.Close 
 Set Conn = Nothing
                Set Conn = Nothing
 End If
            End If
 End Function
        End Function

 Function Echo(Str) '输出字符串并换行
        Function Echo(Str) '输出字符串并换行
 Response.Write Str & VbCrlf
            Response.Write Str & VbCrlf
 End Function
        End Function

 Call OpenConn(Conn)
        Call OpenConn(Conn)

 '定义第一级分类
        '定义第一级分类
 Sub MainFl()
        Sub MainFl()
 Dim Rs
            Dim Rs
 Set Rs = Conn.Execute("SELECT ClassID,ClassName FROM Class WHERE ParentClassID IS NULL")
            Set Rs = Conn.Execute("SELECT ClassID,ClassName FROM Class WHERE ParentClassID IS NULL")
 If Not Rs.Eof Then
            If Not Rs.Eof Then
 Do While Not Rs.Eof
                Do While Not Rs.Eof
 Echo("<div><label id=""" & Trim(Rs("ClassID")) & """>+" & Trim(Rs("ClassName")) & "</label>")
                    Echo("<div><label id=""" & Trim(Rs("ClassID")) & """>+" & Trim(Rs("ClassName")) & "</label>")
 Call Subfl(Rs("ClassID"),"|-") '循环子级分类
                    Call Subfl(Rs("ClassID"),"|-") '循环子级分类
 Echo("</div>")
                    Echo("</div>")
 Rs.MoveNext
                Rs.MoveNext
 If Rs.Eof Then Exit Do '防上造成死循环
                If Rs.Eof Then Exit Do '防上造成死循环
 Loop
                Loop
 End If
            End If
 Set Rs = Nothing
            Set Rs = Nothing
 End Sub
        End Sub
 '定义子级分类
        '定义子级分类
 Sub SubFl(FID,StrDis)
        Sub SubFl(FID,StrDis)
 Dim Rs1
            Dim Rs1
 Set Rs1 = Conn.Execute("SELECT ClassID,ClassName FROM Class WHERE ParentClassID = '" & FID & "'")
            Set Rs1 = Conn.Execute("SELECT ClassID,ClassName FROM Class WHERE ParentClassID = '" & FID & "'")
 If Not Rs1.Eof Then
            If Not Rs1.Eof Then
 Do While Not Rs1.Eof
                Do While Not Rs1.Eof
 Echo("    <div id=""" & Trim(Rs1("ClassID")) & """>" & StrDis & Trim(Rs1("ClassName")) & "</div>")
                    Echo("    <div id=""" & Trim(Rs1("ClassID")) & """>" & StrDis & Trim(Rs1("ClassName")) & "</div>")
 Call SubFl(Trim(Rs1("ClassID")),"| " & Strdis) '递归子级分类
                    Call SubFl(Trim(Rs1("ClassID")),"| " & Strdis) '递归子级分类
 Rs1.Movenext:Loop
                Rs1.Movenext:Loop
 If Rs1.Eof Then
                If Rs1.Eof Then
 Rs1.Close
                    Rs1.Close
 Exit Sub
                    Exit Sub
 End If
                End If
 End If
            End If
 Set Rs1 = Nothing
            Set Rs1 = Nothing
 End Sub
        End Sub

 '最后直接调用MainFl()就行了
        '最后直接调用MainFl()就行了

 MainFl()
        MainFl()

 Call CloseConn(Conn)%>
        Call CloseConn(Conn)%>
 </body>
    </body>
 </html>
</html>