[这个贴子最后由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 <!--#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 |
<!--#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
<!--#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( ^
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了 |