新手帮助 | 版主申请 | BST制度 | MST制度
返回列表 回复 发帖

ASP基础教程(续)

[这个贴子最后由eqlwm在 2004/10/20 03:52pm 第 1 次编辑]
% m  e4 T, G+ z1 e: [+ u; m& G1 h* J& D" f! z0 e
[fly][color=#0000FF]介绍vbscript[/fly]
4 c$ s# v, d, w$ F8 Z+ M一.VBScript语法简介   r" E& A, y3 ~/ ~# W  G
VBScript语句是一种基于VB的一种脚本语言,主要用于WEB服务器端的程序开发,我们
& V  ?6 c/ _' _& a这里只介绍一些简单的语句,主要是操作数据库的几种常见的语句 # |( e( D0 K4 D, s
<1 >.vbscript的标识 & [* ?: C9 ]' H  X5 g
  <% . F- h9 A' q/ F4 U
  语句
& [) V' W% O  W3 Y4 v  ……
9 _# Z5 E  i" ?# P8 A9 e* q% >
! P( X$ h' f% b3 z$ J& h+ @<2 >定义变量dim语句
2 V( U: r+ N) Q* E( s( P<%
. {' T* p* q/ K6 {dim a,b 4 a' _% Y8 W" d: E' S+ |0 |! _
a=10 : f9 q' P- g: U
b=”ok!”
: a- P- D6 z+ [" ]/ z% >
8 M' B, ~, z' N2 b注意:定义的变量可以是数值型,也可以是字符或者其他类型的 5 ~& h9 v& q" j
<3 >简单的控制流程语句
! ~+ t8 ~6 w7 f, ~( v. l1. If 条件1 then
) x$ l/ R# ~" H* v: D/ Y    语句1 * a/ S: P  m  C0 Q& Y( i  r1 i
elseif 条件2 then
( N. f6 U9 V- Q    语句2 # L' x' U% \+ z" c9 `  i/ v
else . n5 c7 L3 D- A4 v8 h& M  B
    语句3 . [* K" J, E$ ^/ z. D
endif
7 k2 R2 B. N3 Y1 C  e7 {2.while 条件
7 ?% `$ Y  G% n$ @/ o$ H( [  语句 4 m, ~) B3 ]! Y
wend
% g4 I3 L% N; P& o: I" E3.for count=1 to n step m
4 |5 s  [( w0 O! s语句1
4 O4 ?2 U6 Q, T6 ]# u! zexit for 5 H, |& Q4 K0 `. [& L1 x/ X
语句2 # T4 r& f# n3 I/ I. t' \1 V4 r- c% ^7 Z
next * j4 ~2 C7 L& {$ l* y! b
二.ASP数据库简单操作教程 5 f8 b/ h; Y: f( \; O
<1 >.数据库连接(用来单独编制连接文件conn.asp) 8 r3 w* J0 @& C% s( h
<%
5 N( y2 C4 D( Z0 E% U: w) k% A0 mSet conn = Server.CreateObject("ADODB.Connection")
" y' a$ P) ~) m) Rconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bbs\db1\user.mdb") $ M2 p" U  H% p! b# A0 t1 i
% >
$ i0 X5 e; t; }7 J1 g( ]( q8 ?  O% C(用来连接bbs\db1\目录下的user.mdb数据库)
4 I! Q" }% X( P9 r<2 >显示数据库记录 8 m; [5 p6 z7 H' z3 v) `$ f, _  ^
原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录 3 v' T/ O: l) C8 u, r6 j
       如果是从头到尾:用循环并判断指针是否到末      使用: not rs.eof
. }6 @5 K  g& H& m" T+ |3 M2 w# m       如果是从尾到头:用循环并判断指针是否到开始    使用:not rs.bof ) c, j, D, n% u. o  P
        
  Z8 l7 t6 A2 r3 I/ u, V        <!--&#35;include file=conn.asp-- >    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
( K% _, Z; M5 X: u. u3 G        <%
: G$ F5 g  ~6 e7 R/ m9 b2 o        set rs=server.CreateObject("adodb.recordset")  (建立recordset对象) , W9 b+ U. Y5 B+ q: p! L
        sqlstr="select * from message"  ---- >(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
( F1 z1 ^, d! x4 M* {0 ~        rs.open sqlstr,conn,1,3         ---- >(表示打开数据库的方式) 5 v$ N: w8 h# ^7 d% s+ P
        rs.movefirst                    ---- >(将指针移到第一条记录)
! Z6 m' [# U5 Q3 ^        while not rs.eof                ---- >(判断指针是否到末尾) % p: S7 |8 S/ q/ D# L
        response.write(rs("name"))      ---- >(显示数据表message中的name字段) 0 s/ v% p3 i" q; D4 b
        rs.movenext                     ---- >(将指针移动到下一条记录)
  ^. y3 d5 B/ \. ?* a        wend                            ---- >(循环结束) 1 _+ @' g8 I) K
------------------------------------------------------         
3 k4 J& C6 q0 y) q, C        rs.close 4 ~& e2 x2 b: U! F: Z
        conn.close                    这几句是用来关闭数据库 7 t  B5 ?7 ]% }! p" w
        set rs=nothing 0 R7 P) b) R, q- U8 X: z* g
        set conn=nothing
" b8 @6 H# b- s  T------------------------------------------------------- ) B& K1 ~/ a1 ]7 k/ _$ f; q
       % >
4 l5 A: b8 ]( N2 ~; Y3 {      其中response对象是服务器向客户端浏览器发送的信息
* [. M1 G* U; a9 O, {<3 >增加数据库记录 ! f, ~. k% Y/ r4 s) [
增加数据库记录用到rs.addnew,rs.update两个函数 & R/ g& J5 Z7 C7 N  |
        <!--&#35;include file=conn.asp-- >    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
* E3 _4 ~! Y( a- ?! h        <% % Q/ v* a1 k6 Q$ I
        set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
( G0 ?3 ^5 K4 L# C3 K# h        sqlstr="select * from message"  ---- >(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
9 X4 g& D: `/ R        rs.open sqlstr,conn,1,3         ---- >(表示打开数据库的方式) + U  P* |% d  z" w$ _5 A
        rs.addnew                      新增加一条记录 " B' f' z% M4 ]9 S7 ^7 @' P3 I
        rs("name")="xx"                将xx的值传给name字段
+ P+ d/ Z* t0 w. }        rs.update                      刷新数据库
7 D  |6 A" w9 q/ p------------------------------------------------------         
% [2 ]5 C4 h! k        rs.close 7 ?& ]. J- J. x
        conn.close                    这几句是用来关闭数据库
/ @3 Y& J% L! l: S( E, n        set rs=nothing
: J1 A: k8 W# |, _3 U0 c        set conn=nothing - _% s  w  X: K3 r6 m8 l
-------------------------------------------------------           
' o5 o4 h+ `, q7 G. j0 R+ f                    
- \2 f0 }7 T0 O/ O3 x       % >
9 e. Z0 ]& H, i: F8 m9 N<4 >删除一条记录
9 l) s: e; f, @4 O, A. V删除数据库记录主要用到rs.delete,rs.update + {. w4 ?% q, K4 M- b
   <!--&#35;include file=conn.asp-- >    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库) / s8 g% R/ f9 M  g
        <% ) h0 j5 v. }+ `( |9 R4 ~
        dim name
3 Y) m4 E3 B( S# s& B$ r        name="xx" 2 Z  Q5 D4 V+ N3 [  F- F: u0 p4 _
        set rs=server.CreateObject("adodb.recordset")  (建立recordset对象) ) M! ]. `" R, o4 A- x. \+ N9 a
        sqlstr="select * from message"  ---- >(message为数据库中的一个数据表,即你要显示的数据所存放的数据表) 2 X2 B8 w; O+ F( W- k) r  W
        rs.open sqlstr,conn,1,3         ---- >(表示打开数据库的方式) 9 Y: D/ h. q. N9 m* u* z) M
-------------------------------------------------------      
2 X9 J7 Z% a8 P: a        while not rs.eof
& x0 G7 d( o/ E9 k, p5 N4 V         if rs.("name")=name then
6 W1 n9 z5 G( a- A& O          rs.delete % L, ^0 k' N0 Q0 N. t
          rs.update             查询数据表中的name字段的值是否等于变量name的值"xx",如果符合就执行删除, : P$ I) Y9 T6 k+ `- [- y6 ]1 ~
         else                   否则继续查询,直到指针到末尾为止 + s) M2 ~* ~+ L9 {0 ?8 K# ?
          rs.movenext
% h6 |& X9 q4 @. P- C) e& ]: s; g9 M/ o         emd if 1 A/ N6 O+ {7 E- Q
        wend & ~3 V  w9 x9 r- U: {. ~
------------------------------------------------------ 4 c* j8 H' G. e- z2 a! s
------------------------------------------------------         
- Z( d- n: K) h1 T9 C        rs.close ) }9 [! ?$ P1 c$ R1 _$ i
        conn.close                    这几句是用来关闭数据库 & @) a) c8 h9 [5 h2 }1 m8 f
        set rs=nothing ( E! v! ?# w& P, w% v6 Q: `
        set conn=nothing
, G, D0 G; m  l" B8 V$ H-------------------------------------------------------
5 k1 V+ \1 Q7 E4 r2 k       % >
! R! o7 p% w2 }6 K) w  e<5 >关于数据库的查询
( W: ~7 s1 S' ]* k" Z% h(a) 查询字段为字符型
6 i0 b. n! K; U: P( D      <%
* z6 [" q" S! ^5 V! r  q     dim user,pass,qq,mail,message
' e  k$ p1 @/ X# B# l6 g0 l  J( V     user=request.Form("user")
( ~& O1 t0 t9 q; \$ t7 A/ v     pass=request.Form("pass")
# ]+ N  @# Q* I6 l' j     qq=request.Form("qq") . k  Z' C# F% Y; e  P: M) \
     mail=request.Form("mail")
, R2 z# G; c+ E/ X/ P     message=request.Form("message")
8 k6 f1 g* T2 ]: o  C     if trim(user)&"x"="x" or trim(pass)&"x"="x" then     (检测user值和pass值是否为空,可以检测到空格) # `! D, x( ~5 S4 b% H' a% g
       response.write("注册信息不能为空")
) i) J7 ?- @; R' h     else
. a! [0 u  S( N% l     set rs=server.CreateObject("adodb.recordset") * p* d. D: N1 Q% C+ n! p
     sqlstr="select * from user where user=';"&user&"';"    (查询user数据表中的user字段其中user字段为字符型) - M2 m5 i3 Y% o
     rs.open sqlstr,conn,1,3
, q  L/ a! V! }; Z' T     if  rs.eof then
" B- F- s/ X1 M' y0 g% j       rs.addnew
3 L3 ~- G& p( h& {       rs("user")=user 6 e. w' C9 V# K3 ?0 g4 C0 R. P
       rs("pass")=pass 5 y- o# d8 R' Q, x9 m
       rs("qq")=qq
# v5 L8 L# c3 [' i       rs("mail")=mail
6 l! e2 r2 J& j5 h3 `       rs("message")=message
% [9 U9 b9 E0 |3 W9 G       rs.update
8 ?' @  s- [, X9 D3 h! X       rs.close
7 o- C! p/ l8 f( a       conn.close 4 ~: [: o7 d% m2 f# l  n; l7 w
       set rs=nothing ' Q5 @+ X% ]" ]
       set conn=nothing
  X1 r0 Q, ]3 q3 d( I( m       response.write("注册成功") & E$ }  C$ o' O$ O- r; {
      end if
  X6 I* x6 k/ B  H! x0 c     rs.close
: b5 c& E6 E) J2 d' A     conn.close
/ X5 [; e$ o  \! @     set rs=nothing 5 f7 [, q. `0 }7 ~
     set conn=nothing ' v% y# I% |4 t0 Q4 z& U; N* f' ?
     response.write("注册重名") $ J# i3 O7 }% x% q' r4 B
    % >
0 _+ x5 c  t1 O# u0 R4 G(b)查询字段为数字型
. r5 V, w0 H4 B# D- O$ t: Q     <% 8 b$ `+ N& i0 J8 h8 c; z, G
     dim num
$ A4 Q. \, f/ b5 r' o- d. }$ Y7 B! `     num=request.Form("num")
- o/ C; W* }4 Y. i     set rs=server.CreateObject("adodb.recordset")
6 S: G* L! q2 V6 ]6 h, y7 q0 J3 B3 t     sqlstr="select * from message where id="&num   (查询message数据表中id字段的值是否与num相等,其中id为数字型) ) q7 w, H5 @8 w+ u% }
     rs.open sqlstr,conn,1,3
( |$ D" n9 Y7 @     if not rs.eof then 1 s% r. h2 z. D5 H  l. E; t2 _& \
     rs.delete 6 Y* ]4 o6 _. K) s! {. W# ?3 l; P7 b4 W# j
     rs.update 8 x% U9 t9 f7 {
     rs.close
8 E2 }; J2 X3 h* E3 a     conn.close
) S" b6 N4 F* P% u     set rs=nothing
" x  g6 u1 C& |' e& i2 s! B# r     set conn=nothing 0 P5 b  Q2 O* o2 U
     response.write("删除成功") * d5 U; l1 J1 N/ ]
     end if
  V3 T" e* ~, J8 H6 {* k5 _     rs.close ; T/ d! h* |# R& q6 e7 M
     conn.close
, E6 A) r) c/ G( a" {7 i     set rs=nothing 1 h3 o! [9 w" \# t0 l$ I
     set conn=nothing / t5 S! _, q4 {/ H7 r
     response.write("删除失败") 8 v& R% R6 O* q: `% q6 d( h  y
    % > ' U6 r! v6 v1 n, \
<6 >几个简单的asp对象的讲解
  L1 j# g: D3 P7 i% h3 F, F% }+ X/ l0 W2 ~  response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,或设置cookie值 1 Y+ h  q7 u% Z, A* P2 @
  request对象:客户端向服务器提出的请求 : A  Y- o2 @1 P2 _
  session对象:作为一个全局变量,在整个站点都生效
5 ]4 A# f( S# x+ m) }9 ^  server对象:提供对服务器上方法和属性的访问                                               ' S: H; p; c, A
(a) response对象的一般使用方法
$ L) n& P' |. G" Y   比如: : ?/ P$ g7 j4 f9 G  G( z8 Y
       <% - [5 ^9 S) e7 H4 U3 S
       resposne.write("hello, welcome to asp!")
/ [# Q3 T% a3 k% t+ C5 K  s! G4 U      % > ) F# _, m3 y- s6 M$ G# [
   在客户端浏览器就会看到  hello, welcome to asp! 这一段文字 - Q9 v8 e/ a6 G1 ]9 O, ~+ a
      <% / V% K; n* C- E! D; M1 |, X
response.Redirect("www.sohu.com") 4 j' ]4 c5 Z- N6 p7 x
     % >
+ S, |0 G# }. b  F3 x5 _& d   如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址
3 d" E# }3 q" r" C( d关于response对象的用法还有很多,大家可以研究研究
* Y* x! a0 {/ k( W1 j$ C" |1 R# M0 _request对象的一般使用方法 & G+ _- j7 p9 x3 G# U
比如客户端向服务器提出的请求就是通过request对象来传递的 ! L# k3 W2 u5 r- q* i
列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将
7 q2 P$ p8 f: X, h2 S4 F6 r     你所填写的信息传递给服务器的 # i7 Q8 f: k8 I; \4 q
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按 ) t0 E/ w% m4 s- f7 }
    “提交”传递给request.asp文件处理后再存入服务器数据库
/ H8 L+ |& ~- J, w    <form name="form1" method="post" action="request.asp" >
+ ?# |2 p5 w% D0 y      <p >
, M% C7 V& e% B2 F      <input type="text" name="user" >
' a& m# B9 x  {7 b      </p >
/ ?1 b& ~( Z0 N0 q" P      <p >
2 H: ~- f2 \# g      <input type="text" name="pass" >
! }3 G# r( Q5 i* r/ k      </p >
7 K  A$ q( Y. U& @; L# S8 |* u9 H      <p > ' E; P/ u! Q: O3 X& X8 L' T/ y  c
      <input type="submit" name="Submit" value="提交" >
  g" G. y0 c0 T, A* ~      </p > ( d' p/ g% a9 _
</form >
+ J3 e" }4 w: T7 r" e) D1 p那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到 # j- v0 i1 y2 f8 v9 w8 g  X
request对象了,下面我们就来分析request.asp的写法 ( T% }" P1 V# {: T$ q! I, {
<% + a; S/ C7 Q- i; J! S
dim name,password    (定义user和password两个变量) 8 U$ f% P' F! o$ n
name=request.form(“user”)  (将表单中的user信息传给变量name)
  ~; \+ N# t8 w- Qpassword=request.form(“pass”) (将表单中的pass信息传给变量password)
( ]/ z3 y& |$ I  d( c% h% l8 g% >      
- I  ^: m/ x! T通过以上的几句代码我们就将表单中的数据读进来了,接下来我们要做的就是将 ; A  a8 n& y+ d( J: V( ^
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了  
能在这里与你交流是我们的缘分!!!http://www.eqwqxx.com/

ASP基础教程(续)

***** 版主模式 *****
4 D/ ^: g5 w/ H4 R% _2 G7 }, i该贴子是管理员从<a href=forums.cgi?forum=33>▒ 网吧及局域网技术 ▒</a>转移过来的!

ASP基础教程(续)

***** 版主模式 *****
5 {: b$ }/ a9 d: F! a, E" {+ r<a href=topic.cgi?forum=14&topic=4728>该贴子已被管理员转移,请点击这里查看</a>
返回列表