網(wǎng)站建設ASP學習筆記
第一課:運行環(huán)境
response.write("本代碼輸出信息")
response.write("本代碼輸出信息"):response.write("本代碼輸出信息")'多條語句放在同一行時要用:號分開.
第二課:變量
算術運算符
+ 加
- 減
* 乘
/ 除
& 連接符
^ 求冪
\ 除法取整數(shù)
mod 除法取余數(shù)
第三課 數(shù)據(jù)的類型
變量必須以字母開頭
變量長度不能超過節(jié)55個字符
變量名字只可以使用字母數(shù)字和下劃線組合
時間型必須在前后加#號
cdbl 將字符串轉(zhuǎn)換為雙精度值
第四課: 判斷語句
語法
if 條件 then
條件成立執(zhí)行的代碼
else
條件不成立執(zhí)行的代碼
end if
第四課: 邏輯運算 返回結(jié)果只有兩種true=真 false=假
and 與 英語意思"同時" 左右結(jié)果都為真才為真
or 或 英語意思"或者" 一個結(jié)果為真結(jié)果為真,兩邊都為假結(jié)果才為假。
not 非 英語意思"不同" 只對右邊的值進行反轉(zhuǎn),否定一切。
第五課: 循環(huán)
asp最常用的兩程循環(huán)語句
do loop和
for next
語法:
for 循環(huán)變量=初值 to 終點值
循環(huán)體
next
do loop實例
<%
dim rs,sql
sql="select top 9 * from BigClass where BigClassName like '%網(wǎng)站%'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%>
<%
do while not rs.eof
response.write(" <a href=""?Sclass="&rs("BigClassName")&""" ><font color=""#ffffff"">"&rs("BigClassName"))&"</font></a>"
rs.movenext
loop
%>
第五課: 數(shù)組
語法
dim 數(shù)組名(元素數(shù)量)
實例
dim a(4)
a(0)=95
a(1)=85
a(2)=85
a(3)=85
a(4)=79
for i=0 to 4
response.write("第"&(i++!) &"個學生的成績是"&a(i)&"<br>")
b=b+a(i)
next
response.write("平均成績是"&b/5)
多維數(shù)組用,號隔開
第五課: 輸入和輸出
提交方式有post和get兩種
post方法
request.form("表單元素名")
<img style="CURSOR: hand" onclick=from3.submit() src="images/2/index_43.gif" name="btnsubmit" width="54" height="19" /> 圖片提交按鈕語法
<img style="CURSOR: hand" onclick=from3.reset() src="images/2/index_45.gif" name="btnreset" width="54" height="19" /> 圖片取消按鈕語法
get方法
request.querystring("地址欄參數(shù)名")
第六課: 函數(shù)
ucase()寫轉(zhuǎn)大寫
abs()返回數(shù)字的絕對值
date()返回當前系統(tǒng)日期
sin()返回某個角的正弦值
sqr()返回數(shù)值的平方根
abs(number)求絕對值
now()獲取現(xiàn)在時間
fromatdatetime(date[,namedfromat])格式化時間
sin(number)取sin值
函數(shù)分為客戶端函數(shù)和服務端函數(shù)兩種
服務端函數(shù)用<% %>符號括起來
客戶端函數(shù)以下方式運行
<script language="vbscript">
vbscript 客戶端腳本程序
</script>
第七課:自編函數(shù) '有返回值
語法
function 函數(shù)名([參數(shù)])
實瑞函數(shù)功能的語句代碼
函數(shù)名=需要返回的值(函數(shù)運行結(jié)果)
end function
實例
function absadd(a,b)
c=a+b
absadd=abs(c) '取絕對值
end function
調(diào)用
a=15
b=-20
c=absadd(a,b)
response.write("abs(a+b)" & c)
dim 為變量聲明函數(shù)
第八課:子程序 '沒有返回值
語法
sub 子程序名([參數(shù)])
實現(xiàn)子程序功能的語言句代碼
end sub
實例
sub draw(n)
dim ch
for i=1 to n
ch=ch &"A"
response.write(ch)
response.write("<br>")
next
end sub
調(diào)用語法
caLL draw(5) 方法1
draw 5 方法2
第九課:對象與組件
asp有6個內(nèi)置對象
request 負責從用戶端接收信息
response 負責傳送信息給用戶
server 負責控制asp的運行環(huán)境
session 負責存儲個別用戶的信息,以便重復使用
application 負責存儲數(shù)據(jù)以供多個用戶使用
objectcontext 可供asp程序直接配合microsoft transaction server (mts)進行分散式的事務處理
1、request 對象
具有1個屬性
totalbytest 只允許讀,指定客房端在請求正文中發(fā)送的字節(jié)總數(shù)
具有多個集合
clientcertificate 存儲在發(fā)送到http請求中客戶端證書中的字段值 '使用https協(xié)議訪問網(wǎng)頁時用
cookies http請求中被發(fā)送的cookies值
from http請求正文中表單元素的值
querystring http中查詢字符串中的變量的值
servervariables 預定的環(huán)境變量的值
方法
binaryread 檢索人客戶端發(fā)送到服務器作為post請求的一部分數(shù)據(jù)
實例
response.write("你使用的瀏覽器是:" & request.servervariables("http_user_agent") & "<br>")
response.write("你的IP地地址是:" & request.servervariables("remote_addr") & "<br>")
response.write("你訪問的網(wǎng)頁是:" & request.servervariables("url") & "<br>")
response.write("你訪問原端口是:" & request.servervariables("server_port") & "<br>")
response.write("你的查詢字符串是:" & request.servervariables("query_string") & "<br>")
2、response 對象
屬性
buffer 表明頁輸出是否被緩沖 '必須放在網(wǎng)頁的第一行
cachecontrol 決定代理服務器是否能緩存asp生成的輸出 '指定輸出數(shù)據(jù)的類型
charset 將字符集的名稱添加到內(nèi)容類型標題中
contenttype 指定響應的http內(nèi)容類型
expires 在瀏覽器的緩存的頁面超時前,指定緩存的時間
expiresabsolute 指定瀏覽器上緩存頁面超時的日期和時間
lsclientconnected 表明客戶端是否與服務器斷開
pices 將pics標記的值添加到響應標題pics標記字段中
status 服務器返回的狀態(tài)行值
方法
addheader 從名稱到值設置html標題
appendtolog 在該請求的web服務器日志條目后添加字符串
binarywrite 將給出信息寫入到當前的http輸出中,并且不進行任何字符集轉(zhuǎn)換
clear 清除任何緩沖的html輸出
end 停止處理asp文件并返回當前的結(jié)果
flush 立即發(fā)送緩沖的輸出
redirect 將重指示的信息發(fā)送到瀏覽器,嘗試連接另一個url
write 將變量作為字符串寫入當前的http輸出
語法
response.buffer=true
response.redirect "http://" '跳轉(zhuǎn)網(wǎng)頁
response.Redirect("javascript:history.go(-1)") '返回上一頁
3、cookies 集合
實例
response.cookies("用戶")="小泥巴" 將cookies信息寫到瀏覽器
response.write("你好" & request.cookies("用戶")) 從瀏覽器里讀取cookies
實例2
response.cookies("用戶")("姓名")="小泥巴"
response.cookies("用戶")("姓別")="男"
response.cookies("用戶").expires="2010-10-10 8:19" 設置過期時間
response.write("你好" & request.cookies("用戶")("姓名")) 從瀏覽器里讀取cookies
response.write("你好" & request.cookies("用戶")("姓別")) 從瀏覽器里讀取cookies
4、session 對象 功能存儲或跟蹤用戶數(shù)據(jù) 內(nèi)似于cookies 不同于session存儲位置是服務端,cookies存儲位置是客戶端
屬性
timeout 設置失效時間'以分鐘為單位
語法 session.timeout=分鐘數(shù)
sessionid 是每個session的代號,它是由服務器產(chǎn)生的.
語法 長整數(shù)變量=session.sessionid
abandon 刪除存儲的session信息
語法 session.abandon
創(chuàng)建 session
語法
session("session名")=值
實例
<% session("bookname")="fif asp多媒體教程" %>
獲取session的值
語法
變量=session("session名")
實例
<% book=session("bookname") %>
5、application 對象 類似于session對象不同點是對所有用戶都有效
語法
建立:
application("application變量名")=值
例: application("studio")="fif"
讀取:
變量=application("application變量名")
例: s=application("studio")
實例3
<%
application.lock 鎖定 由于application對象不能同一時間處理多個操作所以使用前要先鎖定
application("studio")="fif多媒體制作小組"
application.unlock 解鎖
%>
6、server 對象
屬性
scripttimeout 它表示超時值就是在腳本運行超過穹所定義的時間后就作超時處理 '本代碼要放在網(wǎng)頁的最前面。
語法
server.scripttimeout=秒數(shù)
方法
createobject 創(chuàng)建一個activex組件實例 '使用本方法一定要在前面加上set關健字
mappath 將指定的虛擬路徑轉(zhuǎn)換為真實的路徑,這里的虛擬路徑指的是web服務器所建立的虛擬路徑。
htmlencode 將字符串應用為html編碼
urlencode 將字符串應用為url編碼
實例
createobject語法
set 對象實例名=server.createobject("組件名.組件類型")
<%
set conn=server.createobject("adodb.connection")
%>
mappath 語法使用實例
<%
path=server.mappath("/index.asp")
response.write(tath)
%>
htmlencode 語法
變量=server.htmlencode("字符串")
urlencode 語法
變量=server.urlencode("字符串")
例
resopnse.write(server.htmlencode("<a hrer=yyznz.com>指南針軟件</a>"))
7、組件
asp內(nèi)置組件
ad rotator 該組件可按用戶指定的播放順序,在同一頁上自動輪換顯示各件廣告.
browser capabilities 該組件決定訪問web站點的每個瀏覽器的性能、類型及版本.
database access 該組件提供用activex data object(ADO)對數(shù)據(jù)庫的訪問.
content linking 該組件可動態(tài)生成web頁內(nèi)容列表,并像書一樣按順序連接。
file assess 該組件提供對WEB服務器文件的輸入輸出訪問。
fso 對象 '功能建立、讀取、刪除、修改文件。
創(chuàng)建方法
set 對象變量名=server.createobject("scripting.filesystemobject")
實例
set fs=server.createobject("scripting.filesystemobject")
FSO方法列表
方法:BuildPath
語法:對象名.BulidPath(路徑,文件名)
說明:在路徑上添加文件名,如果有需要的話,會自動加上\分隔符。
方法:CopyFile
語法:對象名.CopyFile(源路徑,目標路徑[,是否覆蓋])
說明:將一個或多個文件從源位置復制到目標位置。源位置支持通配符,如果目標路徑最后字符為\則認為目標路徑是目錄,是否覆蓋參數(shù)默認值為TURE,如果目標位置文件已經(jīng)存在,而是否覆蓋屬性設置為FALSE的話會出錯。(關于是否覆蓋參數(shù)的說明其它各處皆同)
方法:CopyFolder
語法:對象名.CopyFolder(源路徑,目標路徑[,是否覆蓋])
說明:將一個文件夾從源位置復制到目標位置。
方法:CreateFolder
語法:對象名.CreateFolder(文件夾名)
說明:創(chuàng)建一個文件夾。
方法:CreateTextFile
語法:對象名.CreateTextFile(文件名[,是否覆蓋[,是否為Unicode編碼]])
說明:創(chuàng)建指定的文件,并返回TextStream對象,該對象可用于讀或?qū)憚?chuàng)建的文件。
方法:DeleteFile
語法:對象名.DeleteFile(文件名[,是否刪除只讀文件])
說明:刪除指定文件,可以使用通配符,如果是否刪除只讀文件參數(shù)設置為TURE,則即便為只讀屬性也會被刪除,默認值為FALSE。
方法:DeleteFolder
語法:對象名.DeleteFolder(目錄名[,是否刪除只讀文件夾])
說明:刪除指定文件夾,可以使用通配符,如果是否刪除只讀文件夾參數(shù)設置為TURE,則即便為只讀屬性也會被刪除,默認值為FALSE。
方法:DriveExists
語法:對象名.DriveExists(驅(qū)動器名)
說明:如果指定的驅(qū)動器存在,則返回TURE,否則返回FLASH。
方法:FileExists
語法:對象名.FileExists(文件名)
說明:如果指定的文件存在,則返回TURE,否則返回FLASH。
方法:FolderExists
語法:對象名.FolderExists(文件夾名)
說明:如果指定的文件夾存在,則返回TURE,否則返回FLASH。
方法:GetAbsolutePathname
語法:對象名.GetAbsolutePathname(路徑)
說明:從提供的路中返回完整且含義明確的路徑,支持通配符。
方法:GetBaseName
語法:對象名.GetBaseName(路徑)
說明:返回一個字符串,該字符串包含路徑,最后一個部分的基本名,無擴展名。
方法:GetDrive
語法:對象名.GetDrive(驅(qū)動器名)
說明:返回與指定驅(qū)動器相對應的Drive對象。
方法:GetDriveName
語法:對象名.GetDriveName(路徑)
說明:返回一個包含指定路徑中驅(qū)動器名的字符串。
方法:GetExtensionName
語法:對象名.GetExtensionName(路徑)
說明:返回一個字符串,包含路徑最后一個組成部分的擴展名。
方法:GetFile
語法:對象名.GetFile(文件路徑)
說明:返回一個與指定路徑中某文件相應的FILE對象。
方法:GetFileName
語法:對象名.GetFileName(文件路徑)
說明:返回路徑中的文件名。
方法:GetFolder
語法:對象名.GetFolder(文件夾路徑)
說明:返回一個與指定的路徑中某文件夾相應的Folder對象。
方法:GetParentFolderName
語法:對象名.GetParentFolderName(文件夾路徑)
說明:返回一個字符串,該字符串包含指定的路徑中最后一個組成部分的你文件夾。
方法:GetSpecialFolder
語法:對象名.GetSpecialFolder(參數(shù))
說明:返回一個與特定的WINDOWS文件夾相對應的FOLDER對象。參數(shù)的允許值是0(WindowsFolder)1(SystemFolder)2(TemporaryFolder)。
方法:GetTempName
語法:對象名.GetTempName()
說明:返回隨機生成的臨時文件或文件夾的名稱,用于執(zhí)行要求臨時文件或文件夾的操作。
方法:MoveFile
語法:對象名.MoveFile(源路徑,目標路徑)
說明:將一個或多個文件從某位置移動到另一個位置,支持通配符。
方法:MoveFolder
語法:對象名.MoveFolder(源路徑,目標路徑)
說明:將一個或多個文件夾從某位置移動到另一個位置,支持通配符。
方法:OpenTextFile
語法:對象名.OpenTextFile(文件名[,訪問類型[,是否創(chuàng)建不存在的文件[,文件讀寫格式]]])
說明:打開一個文件,并且返回一個與其相關的TextStream對象,訪問類型參數(shù)可以是ForReading(1 默認)、ForWriting(2)、ForAppending(8),當是否創(chuàng)建不存在的文件參數(shù)值為TRUE時會創(chuàng)建不存在的文件,默認值為FALSE,文件讀寫格式允許值是:0 (默認,按照ASCII格式打開)、-1(按照UNICODE格式打開)、-2(用系統(tǒng)默認格式打開)。
fso只有一個屬性
drives 取得驅(qū)動器信息
8、textstream 對象
createtextfile 方法
語法: fso對象名.createtextfile(文件笱[,是否覆蓋[,是否為unicode編碼]])
說明: 創(chuàng)建指定的文件,并返回textstream對象,該對象可用于讀或?qū)憚?chuàng)建的文件.
opentextfile 方法
語法: fso對象名.opentextfile(文件名[,訪問類型[,是否創(chuàng)建不存在的文件[,文件讀寫格式]]])
說明: 打開一個文件,并且返回一個與其相關的textstream對象,訪問類型參數(shù)可以是forreading(1 默認)、forwriting(2)、forappending(8),當是否創(chuàng)建不存在的文件參數(shù)值為true時會創(chuàng)建不存在的文件,默認值為false,文件讀寫格式允許值是:0(默認,按照ascll格式打開)、-1(接照unicode格式打開)、-2(用系統(tǒng)默認格式打開).
屬性列表
屬性名 語法 描述
atendofline object.atendofline 只讀屬性.在textstream文件中,如果文件指針指向行末標記,就返回true,否則返回false
atendofstream object.atendofstream 只讀屬性.如果文件指針位于textstream文件末尾,則返回true,否則返回false
column object.column 只讀屬性.返回textstream文件中當前字符位置的列號
line object.line 只讀屬性.返回textstream文件中當前行號
方法列表
方法名 語法 描述
close object.close 關閉打開的textstream文件
read object..read(字符個數(shù)) 從textstream文件中讀入指定數(shù)目的字符
readall object.readall 從textstream文件中讀出全部字內(nèi)容
readline object.readline 從textstream文件中讀入一整行字符
skip object.skip(字符個數(shù)) 讀textstream文件時跳過指定的數(shù)目字符
skipline object.skipline 讀textstream文件時跳過一行
write object.write(字符串) 向textstream文件中寫入指定的字符串
writeline object.writeline([字符串]) 向textstream文件中寫入指定字符串和換行
writeblanklines object.writeblanklines(行數(shù)) 向textstream文件中寫入指定寫入指定數(shù)目的新行
第十課: sql 語句
select 查詢語句
語法結(jié)構:
select [top 返回記錄條數(shù)] 字段表名/或者用*號顯示所有的字段 from 數(shù)據(jù)表序列 [where 條件表達式] [order by 排序字段表[asc/desc]] 'asc 表示正排序 desc 表示倒排序
模糊查詢 用like語句
語法: select * from info where i_name like '*小*' /實例講解查詢所有包含小字的記錄
具有兩個通配符
* 代表任意多個任意字符 可能有錯
% 代表任意多個任意字符 最后修正
? 代表一個任意字符
實例:
select * from class
select c_id,c_name from class order by c_nn desc
select c_name,c_stu from class where c_stu>50 or c_stu<20
select top 5 c_name,c_stu from class where c_stu>30 and c_type=true and c_name like '*二班*' order by c_stu asc,c_type desc
select c_name,s_no,s_name from class,stu where c_id=s_cid and c_stu>20 and s_no like '?006*' order by s_no desc
SELECT DISTINCT Company FROM Orders '用distinct 列中僅選取唯一不同的值
SELECT TOP 50 PERCENT * FROM Persons '從 "Persons" 表中選取 50% 的記錄。
多表查詢實例 user表和info表
select * from user,info where user.u_id=info.i_uid
第十一課: 增加記錄
語法: insert into 表名 [(字段1[,字段2[,...[字段n]]])] values (字段1[,字段2[,...[字段n]]])
實例:
insert into class(c_name,c_stu,c_type) values('三年二班',45,false)
第十二課: 更新記錄
語法: update 表名 set 字段名1=表達式1[, 字段名2=表大式2..] [where 條件表達式]
update stu set s_age=s_age-1 where s_no like '?6*' and s_no like '???1*'
第十三課: 刪除記錄
語法: delete from 表名 [where 條件表達式]
實例
delete from stu where s_age>45 '刪除stu表中年齡大于45的數(shù)據(jù)
第十四課: ADO 組件
對象列表
connection 對象
command 對象
parameter 對象
recordset 對象
field 對象 查看字段
property 對象
error 對象
1、連接數(shù)據(jù)庫
'DSN連接數(shù)據(jù)庫方法
<%
set conn=server.CreateObject("ADODB.Connection")
conn.open "DSN=fifasp;UID=admin;PWD=;"
%>
'字符串連接數(shù)據(jù)庫方法
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;PWD=;DBQ="&Server.MapPath("fifasp.mdb")
%>
以文件形式調(diào)用數(shù)據(jù)庫
語法: <!-- #include file="filename" -->
2、寫記錄到數(shù)據(jù)庫要到到 recordset 對象
方法1
set rst =server.CreateObject("ADODB.recordset")
方法2
set recordset=connection.execute(commandtext,recordsaffected,options)
例子:
set rst1=conn.execute("insert into user (u_user,u_code) values ('" & request.form("f_user") & "','" & request.form("f_code") & "')")
實例:
set rst =server.CreateObject("ADODB.recordset")
rst.open "select * from user where U_user'" & request.form("f_user") & "'",conn,1,1
if rst.recordcount>0 then 'recordcount訪回記錄條數(shù)
'判斷相同記錄有幾條,并進行提示
response.write"用戶名:" & request.form("f_user") &"
已經(jīng)存在請重先輸入.
set rst=nothing 設置rst對象為空
conn.close 關閉這個對象
set conn=nothing 設置conn對象為空
response.end '結(jié)束代碼的執(zhí)行
else
Connection.begintrans 開啟事務
'如果用戶名不存在則寫入數(shù)據(jù)方法1
set rst1=conn.Execute("insert into user (u_user,U_code) values ('" & request.form("f_user")" & "','" & request.form("f_code") &"')")
rst.close
'如果用戶名不存在則寫入數(shù)據(jù)方法2
rst.open "user",conn,1,3 '打開數(shù)據(jù)庫
rst.addnew'插入數(shù)據(jù)到user表
rst("u_user")=request.form("f_user")
rst.update
rst.close
if err.number <>0 then
寫入失敗信息
connection.rollbacktrans 取消事務更改并結(jié)束事務
else
寫入成功信息
connection.committrans 保存事務更改并結(jié)束事務
end if
'獲取剛才插入的數(shù)據(jù)的自動編號自段值,即U_id字段的值
set rst1=conn.execute("select @@identity as uid") '到得自動編號字段的值
uid = rst1("uid")
rst.open "info",conn,1,3
rst.addnew
rst("i_uid")=uid
rst("i_name")=name
rst.update '更新數(shù)據(jù)表
rst.close
end if
判斷結(jié)束
set rst=nothing
conn.close
set conn=nothing
errors.count 用于獲得錯誤對象的個數(shù)
errors.clear 用于清空錯誤對象
errors.item() 到得集合中的error對象
語法 set err=connection.errors.item(error對象索引)
error.number 取得錯誤代碼
error.description 取得錯誤或警告發(fā)生的原因或者是描述
<% on error resume next %> '如果發(fā)生錯誤就跳過錯誤的代碼繼續(xù)向下運行
錯誤判斷:
set myerrors=conn.errors
if myerrors.count>0 then '大于0說明有錯誤
for i=0 to myerrores.count-1
response.write("錯誤原因:" & "<br>")
next
end if
err對象 及使用方法
resopnse.write"錯誤號" & err.number 用來取得出錯代碼,如果不等0就說明有錯語信息.
response.write"錯誤號" & err.description 用來取得出錯信息
err.clear 用來清空出錯信息
2、fields 集合 用于查字每個表的數(shù)據(jù)結(jié)構
方法列表:
變量=recordest.fields.count 取得集合中包含的field對象數(shù)目
recordest.fields.refresh 重新取得fields數(shù)據(jù)集合中包含的field對象
set field=recordest.fields.item(index) 得到某一個field對象
set field=recordest.fields(index) 得到某一個field對象
屬性列表:
name 表示字段的名稱。
value 表示字段的值。
type 表示數(shù)據(jù)字段的數(shù)據(jù)類型。
attribute 表示字段的特性。
numericscale 表示數(shù)據(jù)字段允許存儲的數(shù)字個數(shù)。
precision 表示數(shù)據(jù)字段允許的最大數(shù)字。
actualsize 表示數(shù)據(jù)字段的數(shù)據(jù)長度。
definedsize 表示數(shù)據(jù)字段在數(shù)據(jù)庫中所定義的長度。
originalvalue 表示數(shù)據(jù)字段第一次啟動或是在調(diào)用update方法前的值。
underlyingvalue 表示數(shù)據(jù)庫中field對象的當前值。
方法列表
第十三課: 數(shù)據(jù)庫事務功能
Connection.begintrans 開啟事務
connection.committrans 保存事務更改并結(jié)束事務
connection.rollbacktrans 取消事務更改并結(jié)束事務
第十四課: 會員管理
<%
set rst=server.createobject("adodb.recordset") 創(chuàng)建數(shù)據(jù)庫連接
sql="select * from user,info where u_id=i_uid" 聯(lián)合查詢語句
rst.open sql,conn,1,1 使用open方法執(zhí)行sql語句,并返回記錄集。
while not rst.eof
while not表示用while集合來輸出記錄集的記錄
用eof屬性來判斷指針是否位于最后一條記錄的后面,如果用bof可以判斷是否位于第一條記錄前
%>
<%
rs.movenext 循環(huán)記錄
loop
%>
實例
<%
exec="select * from guestbook"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
這三句加在前面兩句的后面,第一句:設置查詢數(shù)據(jù)庫的命令,select后面加的是字段,如果都要查詢的話就用*,from后面再加上表的名字,我們前面建立的是不是一個gustbook表阿?第二句:定義一個記錄集組件,所有搜索到的記錄都放在這里面,第三句是打開這個記錄集,exec就是前面定義的查詢命令,conn就是前面定義的數(shù)據(jù)庫連接組件,后面參數(shù)“1,1”,這是讀取,后面講到修改記錄就把參數(shù)設置為1,3,好了接下來我們讀取記錄。
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%do while not rs.eof%> 循環(huán)內(nèi)容開始
<tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr><%
rs.movenext 循環(huán)內(nèi)容結(jié)束
loop
%>
</table>
五種移動指針的方法:
recordset.movefirst '指針移動到第一條記錄
recordset.movelast '指針移動到最后一條記錄
recordset.movenext '指針移動到下一條記錄
recordset.moveprevious '指針移動到上一條記錄
recordset.move recordsnum,start '指針移動到指定記錄
補充學習
<input id="aaa" readonly> 'readonly表示設為只讀狀態(tài)
if Rs.bof and Rs.eof then 有記錄 else 無記錄 enf if
判斷記錄是否存在
if not rs.EOF then
有記錄
else
無記錄
end if
表單知識:
disabled="disabled" 表單灰色不可用狀態(tài)
<input name="kfname" ondblclick="JavaScript:window.open('');" style="width:150px""> 'ondblclick表示雙擊鼠標事件 onClick表示單擊鼠標事件
<input name="kfname" onClick="document.form1.kfname.value = ''">單擊清空內(nèi)容
onpaste="return false" '表單禁止粘貼
<input onchange= "key()" oninput="key()" onPropertyChange="key()" />
<script language="javascript">
function key(){
var val = document.domainForm.searchedDomainName.value;
document.domainForm.domain_name.value = val;
}
</script>
補學資料
trim(request("表單")) '去掉字符中左右兩端的空格
IsNull() 函數(shù)判斷一對象是否為空
Cint() 可把表達式轉(zhuǎn)換為整數(shù)(Integer)類型。 注釋:值必須是介于 -32768 與 32767 之間的數(shù)字
isinteger() 檢查是否整數(shù)
IsNumeric() 出表達式的運算結(jié)果是否為數(shù)字
cstr() 將括號中的內(nèi)容轉(zhuǎn)換為字符串,括號中的內(nèi)容可以是值、變量或表達式
Split() 返回值數(shù)組 = Split("字符串","分割符")
len() 取字符長度
LCASE() 函數(shù) LCASE 函數(shù)把字段的值轉(zhuǎn)換為小寫
Instr() 函數(shù)返回字符或字符串在另一個字符串中第一次出現(xiàn)的位置
InStr([start, ]string1, string2[, compare]) string1必要參數(shù)。接受搜索的字符串表達式。string2必要參數(shù)。被搜索的字符串表達式?蛇x參數(shù)。指定字符串比較。如果 compare 是 Null,將發(fā)生錯誤。如果省略 compare,Option Compare 的設置將決定比較的類型。
UBound(Split(Users,",")) + 1 取數(shù)組個數(shù)
<!--#include file="conn.asp" -->
<!--#include virtual="conn.asp" -->
CStr() 函數(shù)轉(zhuǎn)化一個表達式為字符串. 允許數(shù)據(jù)類型: expression 是任何有效的表達式。
IsEmpty() 函數(shù)判斷一對象是否初始化
DATEDIFF() 函數(shù)返回兩個日期之間的天數(shù)。
JS收集資料:
<SCRIPT LANGUAGE="JavaScript">
//屏蔽可忽略的js腳本錯誤
function killErr(){
return true;
}
window.onerror=killErr;
</SCRIPT>
<script type="text/javascript">
<!--
function CheckForm() {
alert(document.form1.radiobutton.value);
if (document.form1.name.value == "") {
alert("姓名為必填信息喔!");
document.form1.name.focus();
return false;
}
var flage = false;
var radios = document.forms[0].radio1;
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked == true) {
flage = true;
alert("選擇了第" + i + "個單選按鈕");
return true;
}
}
if (!flage) {
alert("一個單選按鈕都沒有選擇!");
return false;
}
-->
Response.Write("<script>alert(""恭喜您信息反饋成功!"");history.go(-1);</script>")
</script>
<script language="javascript">
alert("服務單保存成功!")
window.location="server_add.asp"
</script>
document.forms['myform'] //表單myform對象,也可用document.getElementById('myform')獲得
document.forms['myform'].elements.length //表單中元素的個數(shù),也就是數(shù)組myform的長度
document.forms['myform'].elements['downurl[]'] //表單中某一數(shù)組元素對象(名字都叫downurl[])
document.forms['myform'].elements['downurl[]'].length //數(shù)組elements['downurl[]']長度
document.forms['myform'].elements['downurl[]'][0] //downurl[] 中的第0個元素
document.forms['myform'].elements['downurl[]'][0].value //downurl[] 中的第0個元素的value屬性值
//JS判斷實例
<script type = "text/javascript" language = "javascript">
function clear1()
{
if(confirm("確定要清空數(shù)據(jù)嗎?"))
{
document.main.text1.value = "";
}
else if (1==2)
{
document.write("<b>好天氣</b>")
}
else
{
document.main.text1.value = "否";
}
}
</script>
<body>
<form name="main">
<input type="text" name="text1" />
<input type="button" name="Submit" value="清空數(shù)據(jù)" onClick="return clear1();">
</form>
</body>
//JS判斷實例 結(jié)速
<script language="JavaScript" type="text/JavaScript">
function delpay()
{
if(confirm("確定要回庫此嗎?"))
return true;
else
return false;
}
</script>
<script language="JavaScript" type="text/JavaScript">
if(confirm("審核成功是否短信通知客戶?"))
{
var url = 'http://202.85.219.239:8000/LFWS/Send2.aspx?CorpID=LFHN000184&Pwd=553856&Mobile=<%=rs_dx("user_sj")%>&Content=您好,(<%=rs_dx("user_namec")%>)你在鄭州百佳注冊的帳號:(<%=rs_dx("username")%>)已通過審核詳情請登鄭州百佳網(wǎng)查看。&Cell=600184&SendTime=';
window.open(url,'短信通知','directorys=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=200,top=150,left=590');
}
</script>
19. 記錄集對象的方法:
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄
rs.pagecount 根據(jù) pagesize 的設置返回總頁數(shù)
rs.recordcount 返回記錄總數(shù)
rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數(shù)據(jù)表末端
rs.update 更新數(shù)據(jù)表記錄