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

ASP无限分类数据库版

2006-06-02 22:38 211 查看
数据库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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息