我爱电脑技术论坛's Archiver

佳佳 发表于 2008-4-30 00:36

教你1小时里搞定ASP

这篇文章教你在一个小时里如何搞定ASP,非常实用,对于想学ASP的朋友可能有所帮助!!\&iXb1k,X9b

H*V!d%HW&zXU0M9O
Y4D{3STQ w-Wv^L 一、语法W*oqS9Y0F

\Z*^ TEy4uE <1>语句+m'{9W5HX;}"jx,t
<%...........%>
s aaW*TQB x7]+X7C` <2>定义变量dim语句,[6d(ea gW8a R

e,},DM`#T&x <%4\2E3L/V i@f L uf4q
dim a,b
/VqS-l$_'f a=10
$rmP,~#a b=”ok!”
W F&ipoV %>
-mdq@^(UH6NLNf6h 注意:定义的变量可以是数值型,也可以是字符或者其他类型的
)OF@ z[(h"^7G{ #go5@1|6[*{9J
<3>简单的控制流程语句+R;B{$o,s
+^l d!@(Q Q^VX"{p
1. If 条件1 then}`XGb!w,I
语句1$xv"^.@ k E3r2gO
elseif 条件2 then
]IqJO[ |yE!M d9} 语句2?,c} `,l!vg
elseXeBFL
语句3
nq;o!_R|0M%X end if
t1Zpj w#R S!a\&O
}p${)g2qMy.} 2.while 条件4q1`xh5Qh,k
语句
-zA `;`s3Q wend
F}x:LT{:r Y j}&T u ~%M
3.for count=1 to n step mE5I.bI:SY"vG$y
语句1
O m?%Q a9_ exit forWS"d]j5z
语句2
)D8k5Vot-d+L.o.^(Jj next
x[it)MB
/I(x;L+s$}-d8I 二.ASP数据库简单*作教程 ^@3?#k/RSAM
@\7@8JNj,y
<1>.数据库连接(用来单独编制连接文件conn.asp)
b6]Q?y[D
V7o8p0VK3w Z <%
Y6@_8o;IX0r5_Y7O Set conn = Server.CreateObject("ADODB.Connection")
.bO,S?G-Z,j)Sk ~ conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bbs\db1\user.mdb")
+_|!`n"w %>z/F5atg([hD
(用来连接bbs\db1\目录下的user.mdb数据库)
J]a|-_6Tf+A
FM([ aAzE6p mz <2>显示数据库记录
8TA2k T-m]v4Je 4~,pEo~.fIxZ
原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录L;HMF4~-x)v-ryk
如果是从头到尾:用循环并判断指针是否到末 使用: not rs.eofZ9rpYpM%H
如果是从尾到头:用循环并判断指针是否到开始 使用:not rs.bof
"Zy-W3v$V%D`\
#[e'S.~L6gV:l vL <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
+?k N| bdP <% M4G ]qA'x5l8f7z
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)s)];^*hB7p
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
&xGsM wk2W}] rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
H/W&V:~9h\Lt4P rs.movefirst ---->(将指针移到第一条记录)a'Q\m(j*u/}vu ].}
while not rs.eof ---->(判断指针是否到末尾)
l!G-|"t9B&E\S~l response.write(rs("name")) ---->(显示数据表message中的name字段)zg'be*u
rs.movenext ---->(将指针移动到下一条记录)-IUobL
wend ---->(循环结束)
5E&g%KC@4i} rs.closekD Pt4p
conn.close 这几句是用来关闭数据库$Ji3x%VE f
set rs=nothing
|,fS2h}9CN @&@jN set conn=nothing
4c4W | Tm `7\7q %>Ja!nun n
其中response对象是<a href='http://school.enet.com.cn/eschool/includes/zhuanti/shuyu/info/1/02/1684.shtml' target='_blank' class='article'>服务器</a>向客户端浏览器发送的信息
qv-E7vN]9d 7J)v"hr*yZA
<3>增加数据库记录fp?(tC,M/t6pz*e

iT&o.h&?~[4LI 增加数据库记录用到rs.addnew,rs.update两个函数
%d0o{:G%pZ2\ $D5?M dBV(s
2V)BG/sEWc
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)SWT/iC2x+T4r_zJ
<%m*n!TSsE,i
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)@2ijpD%k N6K-eq4K
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)d)b:Rhu#x"A%Rzu
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)a ~$J%n2\E+N7_w
rs.addnew 新增加一条记录H)T/ne u
rs("name")="xx" 将xx的值传给name字段!s#`/q4k ~UE Q
rs.update 刷新数据库 ze4Km};F3^Q2}
rs.closeW%A yx$D2m
conn.close 这几句是用来关闭数据库p6M8y}]'S+V
set rs=nothing sV N&G0bUMfx_V
set conn=nothingJ"^$c5v&jc
%>
0jt dZ ]/x }'_ <4>删除一条记录 S9o!}7K5yB$@
删除数据库记录主要用到rs.delete,rs.updates {G}6d8q6H
;{ fp ]0L]S7})I R`2E

b!~gO.N@`+u.A <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
S-sK_4q/p'W2Q"g <%
{ _"Y k3JL dim name
H.Ya8Z7~z ~7n name="xx"
TF-l)Ly6p$j set rs=server.CreateObject("adodb.recordset") (建立recordset对象)5zZ,g VT3lU
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表) hU"N2U SQ\5KR \j j
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
i(]y^[8]Qx6\ while not rs.eof
c1]P,{ j%@ if rs.("name")=name thenk W7}F%z0lk
rs.delete
ImeQR+I rs.update 查询数据表中的name字段的值是否等于变量name的值"xx",如果符合就执行删除,
)YX d(Q(d else 否则继续查询,直到指针到末尾为止1M fG-_h~:k)xh{z
rs.movenext
NI M QUy| emd ifWA~ GL3fM
wend
,eh g"kU:J| rs.close
8fs,[$R ?'d;w%s conn.close 这几句是用来关闭数据库
G#{"o!R+C#Le set rs=nothingxI%bV*N9Do
set conn=nothing0Rf*G$R {^ |,I
%>"fpm?t#A qQ-G)|
<5>关于数据库的查询:oJ Yd#P;e
(a) 查询字段为字符型
vlC$Jp{0cz N8F"m 9Gq,N3jcT
<%Z5P$D WC?-d3Nb
dim user,pass,qq,mail,message
?0?/Zg(es user=request.Form("user")'w-tmY:~*Kg
pass=request.Form("pass")
M+w/\2D*C hy6Rw qq=request.Form("qq")d4t&N M.vg
mail=request.Form("mail")P S5T7Q7@&Hv F
message=request.Form("message")
R)M9hW/y6S!zR if trim(user)&"x"="x" or trim(pass)&"x"="x" then (检测user值和pass值是否为空,可以检测到空格)N] Zm h6Z ]/H^
response.write("注册信息不能为空")Pv2Vb@#u9N0Yb U
else z5kkv:d
set rs=server.CreateObject("adodb.recordset") t;KPc1qL
sqlstr="select * from user where user='"&user&"'" (查询user数据表中的user字段其中user字段为字符型)
e+_8~#LyE#LO"i rs.open sqlstr,conn,1,3m7\(nzZ+X G
if rs.eof theno(?s/J#D
rs.addnew
s_:} tl!wI rs("user")=user Yy$[E~)z6X
rs("pass")=pass!vY PN;l'R
rs("qq")=qq
i8@8nC v D} rs("mail")=mail_r&`f|ge
rs("message")=message$[Ls[vnt
rs.update
S'Y N:{*R.br:ND rs.close4J't-}5Y;u
conn.close/mPOOA.IK8`
set rs=nothing
|Z'}c%ZA4a4^ set conn=nothing
/vyo x[:e response.write("注册成功")6f!` Q^'},w$w
end if
)vL"R"D(u rs.close
(m4M Lw!] QK/m[ conn.close
3x a3q)Ph2~"k.B set rs=nothing
UmDZ#W_k set conn=nothing
)}sV@,LEz8\ response.write("注册重名")X%N Sd3F5P hW.P
%> ls1vW2|!O ?D@w
(b)查询字段为数字型^"D[\/YM!Cm;W
hk e1vB4K1t v
<%
YmO^yi dim num
t.|D ^'\Ch-P_ num=request.Form("num")
I2QC&B)z \*B3s"Z set rs=server.CreateObject("adodb.recordset")h t3m"fED4xf
sqlstr="select * from message where id="&num (查询message数据表中id字段的值是否与num相等,其中id为数字型)2X {+W#C)H!s1oD u
rs.open sqlstr,conn,1,3
4f H!Sb7_W$C&OeI M(h if not rs.eof then
F"_$g^&s rs.delete
%t4B!YQ eV.l}1w s"A rs.updateS?bn ^/r#u@:Q
rs.close]%NEI-YQ
conn.closetp;VY3k q
set rs=nothing
.h q%}7jkU:a set conn=nothing
D_"|$E$Lr6wVC response.write("删除成功")1XH h0PBMG,m1|1L2~
end if3\@,aZR.v
rs.closey]$lf-TU
conn.close
5h fLB_^}$I,A set rs=nothing
U9?#V O"Wp/}7O9q[Y set conn=nothing$f|&_.Z e,Efj1g
response.write("删除失败")'eP1{&V5lH2Bk
%>u"d&V9b[BWH
<6>几个简单的asp对象的讲解8Q }MRo1u(X)?5\
5i-w:B@s ['b\K
"DZR:o6nH#RE-Uw^t
response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,或设置cookie值
imn ]X l request对象:客户端向服务器提出的请求
GGEQ f%F:C9{ session对象:作为一个全局变量,在整个站点都生效
e!h |?+Y#bg server对象:提供对服务器上方法和属性的访问
5xuHd4Km~)F (a) response对象的一般使用方法 U0hx Mur*r5?:EsfF7y
:rNh,H'{DwA;` w
比如:
$s(_,O}$R D
Qa{&eMNu <%%tN(z\Ze L3H
resposne.write("hello, welcome to asp!")
~ wSm%o %>
/]-{;kEY;c 在客户端浏览器就会看到 hello, welcome to asp! 这一段文字
Nn4tHYt!G4@i] G
V2FH1oPiu7m{ <%&]0[|WqV
response.Redirect("www.sohu.com")
p0^b}HWP7HM %> A'wr,q,@ a+cH^ @
如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址RI~BB#j,`
k o*^.m]]ju
关于response对象的用法还有很多,大家可以研究研究
b;]w0SC6t3Wv,vjC
.i2t#@lO!v QS$D4Ai request对象的一般使用方法 XP.ui0TJ DJU

e,N}EJ#i 比如客户端向服务器提出的请求就是通过request对象来传递的列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将你所填写的信息传递给服务器的QITd,d I

*@$Zm`6lj;A"[8O 比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按“提交”传递给request.asp文件处理后再存入服务器数据库
oi"nayF,M.W;w lTv!YDx:iw c
<form name="form1" method="post" action="request.asp">
]&SEgJ~ <p>
5f} \+Nf WMr0Mm <input type="text" name="user">/KT+O7I-a)cr P+lk
</p>
4|9m+}+RgZ <p>
H kM-t\u <input type="text" name="pass">
Q5s/B{&k </p>/l7`:aB&s
<p>2H.|A!t:X E3n?
<input type="submit" name="Submit" value="提交">%hK5Pn/d
</p>
,gW*shv!w </form> 7ZG5G7yo6o5|!|
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到
0Ou/t e~3h*~'@ request对象了,下面我们就来分析request.asp的写法&r$YILgE-Gb

^2d ^Xq }V\ <%AR$Hp$[C:c;k,He
dim name,password (定义user和password两个变量)
+J*LV;] t}vh!u name=request.form(“user”) (将表单中的user信息传给变量name)
})O"w&gWG,cI(A password=request.form(“pass”) (将表单中的pass信息传给变量password)
)^ yk.x!cC\"vw %>
)WHF%o0H(Os}:N 通过以上的几句代码我们就将表单中的数据读进来了,接下来我们要做的就是将~!P\6V;c `9m
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了。

不和人说话 发表于 2008-4-30 00:45

很不错的课程,强烈支持了。3tL%z#I:?/C,F
期待你更精彩的发挥。:)12)

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.