下面把這些語法按照程序員常用的模塊方式組合起來,請大家按照模塊來記憶,然後按照模塊來應用,不一定要一個一個字母的背下來,關鍵是用到這些模塊的時候能準確的,拿出來,安上去!5 S2 x& F* B- z- |8 u
& ?! T& X. P) ]# z注意下面的標點符號,全部都為英文中的半角符號,如果寫成了全角的就一定運行不起來了,切忌切忌……' Z2 @. {" m2 [7 ~
2 C/ A+ J' t4 D
1、常用寫法
! k9 M* l) c+ S: B(1)ASP開始結束符語法:<% %> 文件後綴.asp v- e6 _+ I2 r9 e* ]
(2)Request.form("title") '獲取表單中的一個輸入框name叫title的值
; I- v U7 T8 R: N& o(3)Request.querystring("title") '獲取連接中的一個參數title=後面的值
/ r1 b6 N, U* [4 F5 v
% b8 I h0 \: {5 b* |(4)dim str# p" V7 G: u% e
str="我愛你"
' `: _2 l2 x" w( b& L0 o response.write(str) '向屏幕輸出
- @1 E( F* j, |8 \(5) response.write "ok 程序運行到這裡了!"$ j* h* C8 b# }% ^3 f* o
/ @% A' @* i8 |$ ]+ ]
(6) sql="select * from news"
4 i) A+ c$ J9 d0 e9 w, i response.write sql" G, @! l9 l' G1 l$ y0 b* _3 L- Y: I
'調試和查看sql語句寫法是否正確的語句常用到6 N: j2 |5 A/ _* W1 i% x
, W4 x& k7 ^0 X3 C" w3 t% v
(7)Response.Redirect("login.asp") '跳轉到另外一個頁面
2 w$ u5 ~! `+ ^(8)response.redirect("admin.asp") '轉到後台
4 Z5 V0 z8 g9 [$ ?, W7 u4 L(9)Response.end '程序輸出截至,不顯示該條語句下面的內容了
, @/ r0 R6 t3 f3 q2 z+ T) [/ X(10)Response.Write("<script>alert('???!')</script>")'彈出提示窗口/ G9 ^6 m0 T' ?. H9 V+ _
5 i/ R9 i# y' n. T% Z+ v
2、判斷語句; G% w$ l J3 E$ {+ F
(1)判斷表單傳來的用戶名和密碼是否正確,並提示" I, @, E9 J% d$ O) N; h; m
If request("username")="admin" then
9 [* C/ ~$ S0 D0 A ` Response.write"恭喜,你已經登錄成功"
6 Q1 ~7 |. N3 O$ ]/ g+ r+ R$ e2 HElse
* m5 j# A" J. I# F5 k Response.write"對不起,您輸入的用戶名錯誤,請返回重輸入"
3 [% c1 p5 X% {/ wEnd if( t& V" `, [: N/ u9 y( W
8 a6 X4 s/ a! C7 w$ K: N0 F p% g
(2)同時判定用戶名和密碼都正確就轉入到後台,否則退回到從新輸入頁面
6 m/ r1 S8 I1 z+ {, S) m7 rIf request("name")="admin" and request("pass")="admin" then
/ c/ |* R- h2 I- Q Response.redirect"admin.asp". z! [0 r" ?0 f& W
Else* A* C( S3 n" u% H, C- i0 v' V
Response.redirect"login.asp"$ c2 t( M, ?# s5 ` C0 `1 \
End if
, l. G4 o, Q8 y
' {, f4 o% ?% E$ A9 M(3)變量值和字符串值合起來用&
' R( f2 j3 G! D6 F2 ~4 l% G. I( Y a="我"
4 \8 t7 k* Z5 R" x$ c7 m2 e b="愛"
% l( p: ]5 J: B2 x) j3 x c="你"
$ m( s+ x/ t8 z+ N8 X% t( u! P response.write a&b&c&"媽媽"
* |/ d9 }7 k+ G* S n! i7 @2 \
) L. x9 a( S& y% M0 P0 t; i3、循環語句:循環顯示6條數據庫中的記錄7 U& T$ {+ `) q' q+ U% O
(1)寫法1:
9 z) q" D6 o- D+ O5 m! edo while not rs.eof 9 O6 o+ a3 S5 l2 b, r8 h
response.write "<br><font color=#000000>"&rs("title")&"</font><br>"8 C' G5 f0 `8 s0 F
rs.movenext
$ [1 h3 ]6 F4 R' I% o, T: E. |loop
$ t7 J3 f) P# p/ i, ~(2)寫法二:4 O6 H+ p$ E$ u) Q3 V. j
for n=1 to 6: w' [' N3 q# E1 Y& V+ M
response.write rs("title")&"<br>"
8 V, [+ ^/ h G' {* y# L if rs.eof then
$ ~ v, N; N9 B! x% H) C F exit for '跳出for循環
3 A8 x; T* A5 I: z' Y' y else7 w( I: X2 U) s! A9 h
rs.movenext '記錄集下移一條
' l) n3 O% e6 `: p. R. f6 ^ end if
( ?# J+ I" K; b' snext
. P1 F3 \3 f! g n$ k0 R# z5 E$ h
1 v$ Z3 } ^% A I, R' H4、常用變量轉換函數
4 Q3 ~& ], @4 `) r0 ^Now() 函數返回系統時間
6 E# I5 e! N: l- o3 MDate() 函數返回當前系統日期.
% J! x! M1 S" YCStr(int) 函數轉化一個表達式為字符串' j; m+ E& n+ C3 J. W x2 \
CInt(string) 將一個表達式轉化為數字類型& r, ]* _9 t$ Z: e0 F* g, l7 S
Trim(request("username")) 函數去掉字符串左右的空格
0 g1 w( u+ @ ALeft(rs("title"),10)&"..." 函數返回字符串左邊第10個字符以前的字符(含第length個字符),一般在限制新聞標題的顯示長度的時候用
% F3 T U& F7 [. t: pLen(string) 函數返回字符串的長度. 中文字符長度也計為一4 l/ ^* L! H, [' Y5 L0 Z
request.serverVariables("remote_host")'取得來訪問的IP$ Q6 t0 C9 d' f' p6 j$ c! P/ `
mid(str,起始字符,[讀取長度]):截取字符串中間子字符串 ! l5 E9 p5 |' K I8 x5 B: g9 z: \
right(str,nlen):從右邊起截取nlen長度子字符串 ) ?( e& E3 T4 s0 {5 _" C
Lcase(str):字符串轉成小寫 , y( W; \: g! \0 K+ j$ m; W
Ucase(str):字符串轉成大寫 ' b7 M* `9 m% x, t. Z
Ltrim(str):去除字符串左側空格
8 y, Z8 K4 ~2 M5 R8 t/ kRtrim(str):去除字符串右側空格
; v: ]. y( ]6 m0 u9 I8 ^0 Zreplace(str,查找字符串,替代字符串,[起始字符,替代次數,比較方法]):
# A! U5 K& w2 G# v9 z. E. I% h* z替換字符串 ) {. v, _$ Z2 G
註:默認值:起始字符 1;替代次數 不限;比較方法 區分大小寫(0) ( C$ D* k6 L- }$ w
InStr([起始字符,]str,查找字符串[,比較方法]):檢測是否包含子字符串 可選參數需同時選 返回起始位置 * ^' D) `- {, I, d8 k4 X- O: f
, Y) d/ l2 y1 p$ F8 P$ {' h
* b/ ~2 m$ v& B" y5、Access數據庫連接代碼
% f8 x9 N& k* w(1)方法一:
. n& _4 f2 U! u* ldb="mydata.mdb" '如果放在目錄中,就要寫明"database/mydata.mdb"
' u {! c0 ^. I8 QSet conn = Server.CreateObject("ADODB.Connection")5 g1 W; S& B J$ A6 D; w
cServer.MapPath(db)1 C J$ H0 ?; l' D, n: Q
conn.Open connstr
4 o6 M- f7 s, [
/ I" J" p0 d/ r2 B/ U4 X: R; ?. l(2)方法二:) p2 l4 F, ^( [1 r5 r- o
'如果你的服務器採用較老版本Access驅動,請用下面連接方法
8 @& q- S3 m8 h' y- Adb="mydata.mdb" '如果放在目錄中,就要寫明"database/mydata.mdb"
7 N" T" m" ? SSet conn = Server.CreateObject("ADODB.Connection")
& x$ \/ v* |$ D/ i- e! zc & Server.MapPath(db)
6 ]4 b5 R$ N1 a+ pconn.Open connstr: ?1 y3 E! G1 [4 F9 v: e+ s- I; I
5 D, w- y' v" b1 m9 p' l6、標準的用Sql語句和asp操作數據的常用寫法
2 l1 P' }! \# i0 f; I/ {' X包括取全部記錄7 F2 G: w5 j1 ?7 X1 z
Set Rs=Server.CreateObject("ADODB.RecordSet")
! W4 u& w- J6 y! G. |% Y, E7 \SqlStr="select * from news"
* s$ M' z9 `# K/ B6 M: |Rs.Open SqlStr,conn,1,1 '運行sql語句,把數據提出到rs對像中* a; k- R, |( Q/ p7 h
- w) R8 p9 w6 f! M: B6 p
選取幾條數據& {" }, p& \. B2 V! b& {, i
Set Rs=Server.CreateObject("ADODB.RecordSet")
M/ s+ T: A- z, @6 ISqlStr="select top 6 * from news", `+ c0 \8 a) n8 l9 _1 f
Rs.Open SqlStr,conn,1,1 '運行sql語句,把6條數據提出到rs對像中
" {2 h) B2 {+ Z* Q3 |1 O( c. n# y' q% n" o% ?1 S7 K' O& J7 i
選取一條指定表中id字段數值的數據" T. ]7 P4 ?4 }2 C
Set Rs=Server.CreateObject("ADODB.RecordSet")
" l5 y: S- ?4 [8 ]! z KSqlStr="select * from news where id="&request("id"). X+ X/ d* g1 L; ^4 l* ]8 K
Rs.Open SqlStr,conn,1,1 '運行sql語句,把6條數據提出到rs對像中3 d2 x$ W6 q; T: R6 N- `
/ V0 c- L% `' K
獲取一條表單傳過來的數據,然後加入到一個表當中$ E/ b/ q# \ ~8 t& E h# O, s
dim a,b,c,d
2 G$ `. b2 E/ k7 e1 Na=request.form("a")
5 l: d' R2 k4 f" ^- g- g" Q2 Ib=request("b")
4 |/ S5 U+ ?/ H9 n5 ic=request("c")3 G" K, X3 V5 h4 B. z; H" O) R
d=request("d"); j1 V" r/ R1 m5 M( j/ w( o( q) T
sqlstr100000="insert into huiyuanbiao(yonghuming,mima,wenti,daan) values('"&a&"','"&b&"','"&c&"','"&d&"')"8 p5 t& |' o5 R) z# L& r3 r
conn.execute sqlstr100000: V; `% x, G. s
response.write"恭喜,新數據加入成功!"$ M# ?' Z+ z$ v5 H' n
' v# f c1 \6 O/ {! f
修改一條指定表中id字段數值的數據,用表單傳過來的數據替換, X' i- o5 y$ _! H
dim a,d,e
! H0 d! m- I; F v4 W* oa=request("id")" c/ I, g" R3 Z3 ~
d=request.form("d")! O2 x# f; b* c9 D
e=request.form("e")
* z( o( o0 g7 @+ A" q8 f9 bsqlstr="update huiyuanbiao set yonghuming='"&d&"',mima='"&e&"' where id="&a
6 _& C6 s3 f `- d7 k y) ]response.write sqlstr
4 L" B3 @5 w' I; Q! @conn.execute sqlstr
- O( ` n" _# b$ u9 F' Rresponse.write"恭喜,數據修改成功!": S0 Z a+ z# \
" x* M) R5 b4 h
9 S# w/ K& C9 n1 d0 P6 ?( B4 M刪除一條指定表中id字段數值的數據 C3 W2 C0 e w4 V# s; w
dim a
. N" O- M* N7 u5 y* h4 N3 _a=request("delid")2 A# |8 R, F' D G7 _( a7 R
sqlstr="delete from huiyuanbiao where id="&a
. N1 K! M: R: }# O+ v, s% Dconn.execute sqlstr
, m3 e+ L" c/ {6 H- d- Z/ Jresponse.write"恭喜,刪除成功!"
" {' I# S& @5 Y' F8 B; h
+ ?1 G ?% a5 e+ S: ]0 U7 A" g2 t3 m8 P7、用Recordset對像和asp操作數據庫的常用寫法" o+ U0 q7 O+ a5 p r6 }1 Q: @
(1)用sql語句,取出news表中所有的數據放到rs中,按照數據庫默認排序9 h3 C. W R1 k0 @
Set Rs=Server.CreateObject("ADODB.RecordSet"). l' {0 f8 s/ n1 c1 m% t* R. R, C
SqlStr="select * from news": i; Q" \0 R* D: [8 o" W
Rs.Open SqlStr,conn,1,1
, h1 T. y; @# r" q# F/ p
' s7 B: G; f% z) O/ R(2)取出news表中前6條數據放到rs中,按照數據庫默認排序方式# j: }1 K% l9 o5 G. \: I& W- h
Set Rs=Server.CreateObject("ADODB.RecordSet")
' K' Z9 q( X x2 N SqlStr="select top 6 * from news"
+ W) \- a7 W1 a- W Rs.Open SqlStr,conn,1,1- J0 V2 Y# w7 b: Q
1 X; N5 M3 P. c1 z& h2 {6 e(3)循環顯示6條rs對像中存在的數據,列表顯示
) S! p: |/ h& N9 p2 e! A! ^
j5 t! @7 R% m- _" z$ @; v 不帶連接的寫法
% W: o# M/ Y& a for n=1 to 6
. B* b; o$ T* [/ a) w) S* @ response.write rs("title")&"<br>"( k: a0 g8 V% v; t1 |
if rs.eof then , Q. h5 Y# u3 x8 u
exit for& }5 ]+ z/ N* V- O' K
else, f" N' r' u1 \0 Z- I& c) i8 x, |% Z9 ?
rs.movenext& E* J3 f; @- I6 J a' N! I2 Q+ N
end if
) E" u: {5 a+ q1 [ Z0 y next
. u' | `, r+ D; j* _3 T$ P0 u3 j+ j; O2 |1 z$ s4 Y3 I1 c8 G
帶連接的寫法$ p6 [. e( e0 u7 h
for n=1 to 62 |0 H! J: r5 h+ ]; B8 h; ?2 n
response.write "<a href=show.asp?id=rs("id")>"& left(rs("title"),20)&"</a><br>"8 Z6 X( g# r2 Z* H# ?# X& m
if rs.eof then / Y# j5 b# e2 D/ z+ C
exit for
: A" p) N8 V! s, G else
, j% [& x( d _4 j rs.movenext
: o' O8 a5 m$ E( ? b0 A end if
. K! y; }0 F: ^; L, Q: S+ X+ C next
( A8 F/ W/ Y- Q5 l3 `/ [, ~% [; L. _5 G7 q8 ?; u$ w+ T
(4)向數據庫添加一條數據代碼
) A; |! D$ r* Q2 o% @6 s$ c2 RSet Rs=Server.CreateObject("ADODB.RecordSet")" f' Z. w) R; I' b& E! U
SqlStr="select * from news"
$ [$ f# H, l7 \# H" xRs.Open SqlStr,conn,1,3'注意這裡的1,3代表可以寫入的打開數據表$ c( b& a( L) [
Rs.addnew5 I9 E* u. _/ h# H5 j& H
Rs("title")=trim(request.form("title"))
W% d; J4 j" k! f. N2 F" \$ X6 ORs("neirong")=request.form("neirong")
5 |: D# k/ L. I& e" z% Z7 d& P+ LRs("date")=now() 2 h) K: V, Q; M6 h7 w, r& j9 X
rs.update '真正寫入數據庫. S2 L% O* r0 F W3 I" G6 v
5 X B, o. O8 a v" o(5)修改一條記錄的代碼,通過(2)中的連接傳遞過來了id數值8 o# O7 Q/ d7 T- g' u9 |! X7 N+ B
Set Rs=Server.CreateObject("ADODB.RecordSet")
" g8 p/ @, H. L; F6 X# WSqlStr="select * from news where id="&request("id"): y9 r3 ^! w* X- s# Q% {
Rs.Open SqlStr,conn,1,3 '注意這裡的1,3代表可以寫入的打開數據表$ Q1 }2 E$ S8 z- i, q
Rs("title")=trim(request("title"))1 N" l8 ~6 U U% q# [
Rs("neirong")=request("neirong")9 N+ x; d; `* f( m0 j5 k
Rs("date")=now()
# K4 ^% P3 P8 `( x' B! I/ srs.update '真正寫入數據庫5 [) T$ h; ~: ^; Z5 Z- u7 I
' e5 @- d( x7 P1 Z
(6)刪除數據庫中一條記錄,通過連接傳遞過來了數據得id數值) ?" L& V9 S, L& Y! a3 P) G
Set Rs=Server.CreateObject("ADODB.RecordSet")
; m6 M# p; C# [- [7 p* jSqlStr="select * from news where id="&request("id")3 {) F m' O7 C; d" r- o$ G
Rs.Open SqlStr,conn,1,3 '注意這裡的1,3代表可以寫入的打開數據表- f" g9 q0 ?- s/ t5 r3 `( @, y9 {
rs.delete '刪除該條數據
3 Y: L7 Q" m: y, }! F% P$ s/ Y# V; O
8、當點擊按鈕時候表單帶著的數據傳送到哪個文件,在哪裡指定?
' ?- Q, Z) y. T5 r
3 m) K$ l, J3 |9 M8 [, b0 \<form method="post" action="addsave.asp">
" M* q4 u0 @0 z, v* `4 ~& t1 p7 B( S <input type="text" name="a">
; H& B9 N0 b% C1 F: f1 w. s <input type="text" name="b">
5 l% B! O2 Q' O ]6 F8 U <input type="submit" name="Submit" value="提交">
4 s4 \0 d! s( `; s/ a7 j, B9 m% q</form>
: ?, |8 {6 ?$ ~' j* z8 G2 j2 s
1 Q0 H: v0 e* W9 h& F! |9、表單提交來的數據接收並顯示到屏幕上的代碼
3 O! L. e) | w( e& n" Uresponse.write request.form("a")
8 t6 u8 ~2 R) F. m- R6 }response.write now()7 \# X7 S( `9 p1 T! ~
response.write trim(request.form("b"))
) z3 _. S. w7 |( A T% b
+ X' U. z7 e2 _2 J$ P& B- \9 ]10、利用Application對像作計數器的語法; [$ l# e) \' H3 O+ h9 I
& W( l8 N. }* `. C8 B5 f在網頁的頭部加入
$ n9 d+ I$ Y( LApplication.Lock% U D% E3 H% U1 Y+ v2 a; U
Application("counter") = Application("counter") + 1
2 {! u. G3 N" q/ u8 h8 UApplication.UnLock; w$ H; j6 w( g
在需要顯示計數內容的網頁的地方,加入下面的語句
: T. |5 T& n6 U, o9 D) Wresponse.write Application("counter")
' p1 @/ [3 K# ?7 D+ \% \1 `* m
0 \+ ^/ l; i# b- d- S) u11、利用Session對像保護後台管理頁面admin.asp,防止未登陸用戶進入- _( p3 N& f6 J3 C% P" E1 l
7 R* B1 j( Z1 N9 `: S5 j
第一步、在網站後台網頁需要權限保護的所有網頁的頭部加入下面的代碼,
5 x: J; R6 J9 ~$ k, s if session("admin")<>"ok" then
% R8 T& C' p/ s9 s response.redirect"login.asp"/ r8 q! R2 Q6 M' Q0 X2 Z
response.end
5 T$ \" C# ?* ^- s7 O( D. e end if& ~" j! w1 M3 Y7 p! ^
* `% O2 t' [$ m1 s6 r1 B
第二步、在網站後台登陸頁的檢測表單發來的用戶名和密碼驗證部分標準寫法
6 N2 K1 Z: U( O/ o+ GAdmName=Request.Form("Name")
% A" n* d8 T3 nAdmPass=Request.Form("Pass")
" f. \$ d1 h: r- l* S, HSet Rs=Server.CreateObject("ADODB.RecordSet")3 r# D. _9 K$ T5 C- ~! f
SqlStr="Select * from Admin where name='"&AdmName&"' and pass='"&AdmPass&"'"
/ Y/ b9 V, B5 g& o) _" ARs.Open SqlStr,conn,1,3
8 _! G2 Y! v8 D* @" {0 G
, K( V) S8 y! t" q# C7 _if Rs.EOF AND RS.BOF then
3 |. Y3 q7 V8 `* b Response.Redirect("login.asp")
2 H) V: V8 E" g response.end: ^+ [4 V; N& U/ p Z4 x% v
else7 K% q- @( Z& N* J/ A, i3 I
session("admin")="ok"
( n6 ^9 @+ O' v3 a7 ?& o+ w Response.Redirect("admin.asp")# s3 n" ^$ w' ^
response.end; w) i5 u' T5 g
end if4 u5 d& v+ G) d9 ^+ l% _
- ]- x1 O2 Y* o' b3 g# J# o) i
12、分頁代碼
X9 R; T$ y D% w Hsql = "select……………………省略了你的從表中取出所有數據的sql語句寫法
: r8 o0 c) B* g& A' d Set rs=Server.Createobject("ADODB.RECORDSET")( } V4 ^' U J: G9 h/ d& x
rs.Open sql, conn, 1, 15 o% b' k7 z, r+ ~) X
if not rs.eof then! `. i8 M+ Y# E; S$ g+ _1 z# v- V O
pages = 30 '定義每頁顯示的記錄數
" T8 @1 v7 d: I# a* T/ Y rs.pageSize = pages '定義每頁顯示的記錄數
& Z/ n3 i% Q$ x% F6 j allPages = rs.pageCount '計算一共能分多少頁' g# J) c& s/ u; ?
page = Request.QueryString("page")'通過瀏覽器傳遞的頁數 E- L- C( b- }+ y9 u
'if語句屬於基本的排錯處理
, q) k/ ^' `) t. ]$ q3 K8 v3 z+ f* d if isEmpty(page) or Cint(page) < 1 then
7 o, p- V* h: t page = 1
% I3 ^$ ~7 y, o( G* M1 |" |. @, w elseif Cint(page) > allPages then: j3 ]4 K/ t. y; o+ K. R( H! J) G
page = allPages 9 b9 t1 t5 s, L1 u
end if4 {' |: k$ W! K2 W
rs.AbsolutePage = page4 J" ~. H, ]0 s
Do while not rs.eof and pages > 0 / h2 F% L: Y" F: q
'這裡輸出你要的內容………………
) ^- i- Z4 K; ? b& n pages = pages - 1) ]" l4 x/ L% ^ r; X
rs.MoveNext) U; t8 M' Q t ?8 b( ~
Loop
: z0 W ]/ N- M1 z* O" ?7 M8 k else3 N* ]( z j" I- L1 ~
Response.Write("數據庫暫無內容!")
, A: c/ M y# P- t6 m2 |9 r9 I End if" @- h8 d3 {: f% u& J
rs.Close
8 U: q8 [7 {8 Z; e* ~ Set rs = Nothing
# P( U C' e0 |; u5 q% v'分頁頁碼連接和跳轉頁碼程序
! @# n5 w& O$ X- M8 o1 ^4 U<form Action="" Method="GET">
4 s: B1 M9 b! F! X2 G6 U<% ' w5 [( A" L5 r) V8 ?: w1 E
If Page <> 1 Then, B& o8 j. c# t* y
Response.Write "<A HREF=?Page=1>第一頁</A>」
8 Q& T' k e! L9 e. ^1 V Response.Write "<A HREF=?Page=" & (Page-1) & ">上一頁</A>「
! p4 F4 r* R1 W0 B End If
# ^8 R3 D) b2 W If Page <> allPages Then; G! I. h" Z+ M x3 l
Response.Write "<A HREF=?Page=" & (Page+1) & ">下一頁</A>"1 x* P+ a B8 k- u% Y7 \+ b
Response.Write "<A HREF=?Page=" & allPages & ">最後一頁</A>"
9 A/ h7 g. A r3 b* @" j End If& S' E: o; C; |
%>- F1 T2 Q% G, L; T- e6 k
輸入頁數:<input TYPE="TEXT" Name="Page" SIZE="3"> 頁數:<font COLOR="Red"><%=Page%>/<%=allPages %></font> ( J- Q, ]9 x5 L& G' [; R
</form>3 `3 {- M3 r2 N! K5 K! s
13、分行列顯示圖片和產品名稱的代碼(4列x3行=12個)
1 o6 ^% t" y6 d) w: C3 G<%
5 Z1 L3 A. s S+ @' {5 d7 V3 wSet Rs=Server.CreateObject("ADODB.RecordSet")
( b9 q8 K4 w! PSqlStr="select top 12 * from myproduct"! E$ V! H+ {4 r+ N# K) A& J/ ?
Rs.Open SqlStr,conn,1,1
, |: \5 Q' d8 a- q, si=12 }* p" ~' N) T( o0 c
%># v' O% g2 t! v M+ A
<table width="90%" border="1" cellspacing="0" sellpadding="0">
# D1 ~: ^3 o8 A9 \, ?+ R$ ^<tr>) J5 \0 l" ` J5 m
<% - y8 ` V2 ~8 N4 E8 R& H6 e
do while not rs.eof. }1 \- M, u- l4 j1 ?& Z4 s' x
%>7 r* I7 f$ y2 a! l* \. y$ ~
<td align="center">1 I, y' e1 r: s! f
<img src="<%=rs("imgurl")%>" width="52" height="120"><br>: A# B( c: K0 q: @0 g
<%=rs("productname")%>
" h, b1 @) m" Y5 d& b( T</td>+ n, j" c3 a% J3 C2 _
<% if i mod 4=0 then response.write"</tr><tr>"
: u/ k' l6 O8 x* hi=i+17 r4 C% j1 q, U7 S. A
rs.movenext
. o$ z) J, ^- t& x s6 \loop
( z* o+ I0 P) H+ v, r8 Drs.close
+ B5 o6 ^/ g) |%>
, N' h$ H0 B$ u7 u) a1 o </tr>
1 K# ?+ I5 F1 M9 g8 R1 q </table>* E, L* s% R3 G- g B" a5 b# i0 {
: O3 k# V# `1 H十四、ASP數據庫連接之ACCESS-SQLSERVER0 F# N7 u2 ^ m+ f" b3 C; R
<%, S7 C, T% N) X o
IsSqlData=0 『定義數據庫類別,0為Access數據庫,1為SQL數據庫9 R$ i4 ]: q3 m3 Z( N. Y h1 l3 X. _
If IsSqlData=0 Then
- P+ u) _3 r C' dAccess數據庫
8 r- N, X2 x# `$ f, Ldatapath ="data/" 數據庫目錄的相對路徑
6 H% e, d, M9 u+ P9 s3 b# g# vdatafile ="data.mdb" 數據庫的文件名
4 r, Y# M& w9 `# F3 qc&Server.MapPath(""&datapath&""&datafile&"")' ^( h M; \9 d8 {! w0 W
C&server.mappath(""&datapath&""&datafile&"")&";DRIVER={Microsoft Access Driver (*.mdb)};", q- H+ k7 [, n3 Q) i7 ~, g
Else
/ i I; D: Z% k# ^5 OSQL數據庫
" @5 W4 x; S$ [: o8 E5 g1 Z2 R, nSqlLocalName ="(local)" 連接IP [ 本地用 (local) 外地用IP ]9 R4 f( O& u2 {6 u6 v" g
SqlUsername ="sa" 用戶名
& w: J3 {; y z8 R% o$ Y( |; ISqlPassword ="1" 用戶密碼
( n" ?3 m3 K$ F( I0 ESqlDatabaseName="data" 數據庫名 e7 Y; i, d6 ^2 k/ D
C & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
- L G1 ~: S: M) [% g* ?END IF2 P) j+ _; _ ^
On Error Resume Next
4 S3 o; k1 f: n$ DSet conn=Server.CreateObject("ADODB.Connection")5 W& j* u: R$ s& o7 L
conn.open ConnStr- u2 W5 D7 } b# c, P4 C
If Err Then8 B2 d* X$ Z- W. W) C. z0 Y
err.Clear
5 {: q: d }% TSet Conn = Nothing
7 Z1 j0 E4 |0 U5 uResponse.Write "數據庫連接出錯,請檢查連接字串。"* u& b+ |1 T) q; B& Z @+ D
Response.End
0 `4 l8 m% ?) f# |* n) o. Q. LEnd If: I' A3 _" J% k
%> |
|