仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 623|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之ASP把无穷级分类天生数组

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。数组把无穷级分类轮回出来的确是一件头疼的事变。
好比,我们要轮回出一个SELECT,或一个TABLE,要写一年夜堆判别。
有没好点的举措呢?
我的做法是天生数组,能够反复挪用,间接轮回数组就好了。
为了便利,我把它写成了类。
class.asp
前往一切分类的数组,并按按次分列
有4个属性:
setaa=newclasslist
aa.id="id"//编号的称号
aa.classname="classname"//分类称号
aa.pid="pid"//父ID称号
aa.db_name="class"//表名
list=aa.arrylist()
<%
classclasslist
privatec_id
privatec_db_name
privatec_pid
privatec_classname
publicpropertyletid(str)
c_id=str
endproperty
publicpropertyletdb_name(str)
c_db_name=str
endproperty
publicpropertyletpid(str)
c_pid=str
endproperty
publicpropertyletclassname(str)
c_classname=str
endproperty

dimlist()

dimi,n
PrivateSubClass_Initialize()初始化变量
i=0
n=0
EndSub


publicfunctionclassarry(thisid,pid)获得上级ID
ifpid>0then
sql="select*from"&c_db_name&"where"&c_pid&"="&thisid
else
sql="select*from"&c_db_name&"where"&c_id&"="&thisid
endif
setrs_c=conn.execute(sql)
n=n+1

dowhilenotrs_c.eof

list(0,i)=rs_c(c_id)装进数组中
list(1,i)=rs_c(c_classname)
list(2,i)=n
n=n+1
i=i+1
thisid=classarry(rs_c(c_id),1)这里递回挪用,直到最初一个子类

rs_c.movenext
loop
n=n-1
rs_c.close

endfunction

publicfunctionarrylist()轮回出一切根类
setrs_c=conn.execute("selectcount("&c_id&")from"&c_db_name)
lenght=rs_c(0)
rs_c.close
redimlist(2,lenght)设置数组
setrs1=conn.execute("select"&c_id&"from"&c_db_name&"where"&c_pid&"=0")
dowhilenotrs1.eof
callclassarry(rs1(c_id),0)
n=1
rs1.movenext
loop
rs1.close
arrylist=list
endfunction

endclass
%>
实例测试:
表CLASS
字段
id:主动编号
classname:称号
pid:父ID
test.asp

<!--#includefile="class.asp"-->
<%
Setconn=Server.CreateObject("ADODB.connection")
SetRs=Server.CreateObject("ADODB.Recordset")
StrDSN="Driver={MicrosoftAccessDriver(*.mdb)};DBQ="
StrDSN=StrDSN&Server.MapPath("test.mdb")
conn.OpenstrDSN

functionins(num)
str=""
forii=1tonum
str=str&"|-"
next
ins=str
endfunction

setaa=newclasslist
aa.id="id"
aa.classname="classname"
aa.pid="pid"
aa.db_name="class"
list=aa.arrylist()

response.write"<tableborder=1><tr><td>ID</td><td>称号</td><td>第几类</td></tr>"
forj=0toubound(list,2)
response.write"<tr><td>"&list(0,j)&"</td><td>"&list(1,j)&"</td><td>"&list(2,j)&"</td></tr>"
next
response.write"</table>"
response.writelist(1,3)
%>
<selectname="">
<%fori=0toubound(list,2)%>
<optionvalue=""><%
response.writeins(list(2,i))
response.writelist(1,i)%></option>
<%next%>
</select

轮回了局:
www.hubro.net/code/class/test.asp
基础上能够满意一样平常的必要了!
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
老尸 该用户已被删除
沙发
发表于 2015-1-18 06:47:25 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-21 13:39:25 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
不帅 该用户已被删除
地板
发表于 2015-1-30 19:31:44 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
飘灵儿 该用户已被删除
5#
发表于 2015-2-6 15:27:54 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
变相怪杰 该用户已被删除
6#
发表于 2015-2-16 21:29:40 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
再现理想 该用户已被删除
7#
 楼主| 发表于 2015-3-5 09:49:00 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-12 03:40:08 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
若天明 该用户已被删除
9#
发表于 2015-3-19 17:55:27 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-19 09:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表