您的位置:首页 > 编程语言 > ASP

ASP无限分类数据库版

2019-08-06 12:29 429 查看
原文链接:https://www.geek-share.com/detail/2360259140.html 数据库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">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>ASP无限分类数据库版</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <meta name="Generator" content="EditPlus">
        <meta name="Author" content="Dicky;QQ:25941">
        <meta name="Keywords" content="Dicky;QQ:25941;ASP无限分类数据库版">
        <meta name="Description" content="Dicky;QQ:25941;ASP无限分类数据库版">
    </head>

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

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

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

        Call OpenConn(Conn)

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

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

        MainFl()

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

转载于:https://www.cnblogs.com/Dicky/archive/2006/06/02/416235.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: