x1、ASP開(kāi)始結(jié)束符語(yǔ)法:< % %> 文件后綴.asp
2、判斷語(yǔ)句:判斷表單傳來(lái)的用戶(hù)名和密碼是否正確,并提示
If request("username")="admin" then
Response.write"恭喜,你已經(jīng)登錄成功"
Else
Response.write"對(duì)不起,您輸入的用戶(hù)名錯(cuò)誤,請(qǐng)返回重輸入"
End if
If request("name")="admin" and request("pass")="admin"then
Response.redirect"admin.asp"
Else
Response.redirect"login.asp"
End if
3、循環(huán)語(yǔ)句:循環(huán)顯示6條數(shù)據(jù)庫(kù)中的記錄
寫(xiě)法1:
for n=1 to 6
response.write rs("title")&"< br>"
if not rs.eof then
exit for
else
rs.movenext
end if
next
寫(xiě)法二:
do while not rs.eof
response.write rs("title")&"< br>"
rs.movenext
loop
4、常用變量轉(zhuǎn)換函數(shù):
Now() 函數(shù)返回系統(tǒng)時(shí)間
Date() 函數(shù)返回當(dāng)前系統(tǒng)日期.
CStr(int) 函數(shù)轉(zhuǎn)化一個(gè)表達(dá)式為字符串
CInt(string) 將一個(gè)表達(dá)式轉(zhuǎn)化為數(shù)字類(lèi)型
Trim(request("username")) 函數(shù)去掉字符串左右的空格
Left(rs("title"),10) 函數(shù)返回字符串左邊第length個(gè)字符以前的字符(含第length個(gè)字符),一般在限制新聞標(biāo)題的顯示長(zhǎng)度的時(shí)候用
Len(string) 函數(shù)返回字符串的長(zhǎng)度.
5、Access數(shù)據(jù)庫(kù)連接代碼
方法一:
db="mydata.mdb" ‘如果放在目錄中,就要寫(xiě)明"database/mydata.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.Open connstr
方法二:
'如果你的服務(wù)器采用較老版本Access驅(qū)動(dòng),請(qǐng)用下面連接方法
db="mydata.mdb" ‘如果放在目錄中,就要寫(xiě)明"database/mydata.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(db)
conn.Open connstr
6、Recordset對(duì)象操作數(shù)據(jù)庫(kù)語(yǔ)法
(1)打開(kāi)sql語(yǔ)句指定的表中的數(shù)據(jù),把這批數(shù)據(jù)放入rs對(duì)象中
取出news表中所有的數(shù)據(jù)放到rs中
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news"
Rs.Open SqlStr,conn,1,1
取出news表中前6條數(shù)據(jù)放到rs中
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select top 6 * from news"
Rs.Open SqlStr,conn,1,1
(2)循環(huán)顯示6條rs對(duì)象中存在的數(shù)據(jù),列表顯示
不帶連接的寫(xiě)法
for n=1 to 6
response.write rs("title")&"< br>"
if not rs.eof then
exit for
else
rs.movenext
end if
next
帶連接的寫(xiě)法
for n=1 to 6
response.write "< a href=show.asp?id=rs("id")>"& left(rs("title"),20)&"< /a>< br>"
if not rs.eof then
exit for
else
rs.movenext
end if
next
(3)向數(shù)據(jù)庫(kù)添加一條數(shù)據(jù)代碼
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news"
Rs.Open SqlStr,conn,1,3 ‘注意這里的1,3代表可以寫(xiě)入的打開(kāi)數(shù)據(jù)表
Rs.addnew
Rs("title")=trim(request("title"))
Rs("neirong")=request("neirong")
Rs("date")=now()
rs.update ‘真正寫(xiě)入數(shù)據(jù)庫(kù)
(4)修改一條記錄的代碼,通過(guò)(2)中的連接傳遞過(guò)來(lái)了id數(shù)值
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news where id="&request("id")
Rs.Open SqlStr,conn,1,3 ‘注意這里的1,3代表可以寫(xiě)入的打開(kāi)數(shù)據(jù)表
Rs("title")=trim(request("title"))
Rs("neirong")=request("neirong")
Rs("date")=now()
rs.update ‘真正寫(xiě)入數(shù)據(jù)庫(kù)
(5)刪除數(shù)據(jù)庫(kù)中一條記錄,通過(guò)連接傳遞過(guò)來(lái)了數(shù)據(jù)得id數(shù)值
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news where id="&request("id")
Rs.Open SqlStr,conn,1,3 ‘注意這里的1,3代表可以寫(xiě)入的打開(kāi)數(shù)據(jù)表
rs.delete ‘刪除該條數(shù)據(jù)
7、標(biāo)準(zhǔn)Sql語(yǔ)句寫(xiě)法
包括取全部記錄
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news"
Rs.Open SqlStr,conn,1,1 ‘運(yùn)行sql語(yǔ)句,把數(shù)據(jù)提出到rs對(duì)象中
選取幾條數(shù)據(jù)
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select top 6 * from news"
Rs.Open SqlStr,conn,1,1 ‘運(yùn)行sql語(yǔ)句,把6條數(shù)據(jù)提出到rs對(duì)象中
選取一條指定表中id字段數(shù)值的數(shù)據(jù)
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select * from news where id="&request("id")
Rs.Open SqlStr,conn,1,1 ‘運(yùn)行sql語(yǔ)句,把6條數(shù)據(jù)提出到rs對(duì)象中
添加一條表單傳過(guò)來(lái)的數(shù)據(jù)替換
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="insert into news(title,neirong) values(request("title"), request("neirong"))
修改一條指定表中id字段數(shù)值的數(shù)據(jù),用表單傳過(guò)來(lái)的數(shù)據(jù)替換
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="update news set title=’"&request("title")&"’,neirong=’"&request("內(nèi)容")&"’ where id="&request("id")
Rs.Open SqlStr,conn,1,3 ‘運(yùn)行sql語(yǔ)句,把數(shù)據(jù)提出到rs對(duì)象中
刪除一條指定表中id字段數(shù)值的數(shù)據(jù)
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="delete from news where id="&request("id")
Rs.Open SqlStr,conn,1,3 ‘運(yùn)行sql語(yǔ)句,把數(shù)據(jù)提出到rs對(duì)象中
8、當(dāng)點(diǎn)擊按鈕時(shí)候表單帶著的數(shù)據(jù)傳送到哪個(gè)文件,在哪里指定?
< form method="post" action="addsave.asp">
< input type="text" name="title">
< input type="text" name="neirong">
< input type="submit" name="Submit" value="提交">
< /form>
9、表單提交來(lái)的數(shù)據(jù)接收并顯示到屏幕上的代碼
response.write request("name")
response.write now()
response.write trim(request("name"))
10、利用Application對(duì)象作計(jì)數(shù)器的語(yǔ)法
在網(wǎng)頁(yè)的頭部加入
Application.Lock
Application("counter") = Application("counter") + 1
Application.UnLock
在需要顯示計(jì)數(shù)內(nèi)容的網(wǎng)頁(yè)的地方,加入下面的語(yǔ)句
response.write Application("counter")
11、利用Session對(duì)象保護(hù)后臺(tái)管理頁(yè)面admin.asp,防止未登陸用戶(hù)進(jìn)入
在網(wǎng)站后臺(tái)網(wǎng)頁(yè)admin.asp的頭部加入下面的代碼,
if session(admin)< >"ok" then
response.redirect"login.asp"
response.end
end if
在網(wǎng)站后臺(tái)登陸頁(yè)的密碼驗(yàn)證部分標(biāo)準(zhǔn)寫(xiě)法
AdmName=Request.Form("Name")
AdmPass=Request.Form("Pass")
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="Select * from Admin where name='"&AdmName&"' and pass='"&AdmPass&"'"
Rs.Open SqlStr,conn,1,3
if Rs.EOF AND RS.BOF then
Response.Redirect("login.asp")
response.end
else
session("admin")="ok"
Response.Redirect("admin.asp")
response.end
end if
12、分頁(yè)代碼
sql = "select……………………省略了sql語(yǔ)句
Set rs=Server.Createobject("ADODB.RECORDSET")
rs.Open sql, conn, 1, 1
if not rs.eof then
pages = 30 '定義每頁(yè)顯示的記錄數(shù)
rs.pageSize = pages '定義每頁(yè)顯示的記錄數(shù)
allPages = rs.pageCount '計(jì)算一共能分多少頁(yè)
page = Request.QueryString("page")'通過(guò)瀏覽器傳遞的頁(yè)數(shù)
’if語(yǔ)句屬于基本的排錯(cuò)處理
if isEmpty(page) or Cint(page) < 1 then
page = 1
elseif Cint(page) > allPages then
page = allPages
end if
rs.AbsolutePage = page
Do while not rs.eof and pages > 0
'這里輸出你要的內(nèi)容………………
pages = pages - 1
rs.MoveNext
Loop
else
Response.Write("數(shù)據(jù)庫(kù)暫無(wú)內(nèi)容!")
End if
rs.Close
Set rs = Nothing
分頁(yè)頁(yè)碼連接和跳轉(zhuǎn)頁(yè)碼程序
< form Action="v3.asp" Method="GET">
< %
If Page < > 1 Then
Response.Write "< A HREF=?Page=1>第一頁(yè)< /A>"
Response.Write "< A HREF=?Page=" & (Page-1) & ">上一頁(yè)< /A>"
End If
If Page < > rs.PageCount Then
Response.Write "< A HREF=?Page=" & (Page+1) & ">下一頁(yè)< /A>"
Response.Write "< A HREF=?Page=" & rs.PageCount & ">最后一頁(yè)< /A>"
End If
%>
< p>輸入頁(yè)數(shù):< input TYPE="TEXT" Name="Page" SIZE="3"> 頁(yè)數(shù):< font COLOR="Red">< %=Page%>/< %=rs.PageCount%>< /font>
< /p>
< /form>
13、分行列顯示圖片和產(chǎn)品名稱(chēng)的代碼(4列x3行=12個(gè))
< %
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select top 12 * from myproduct"
Rs.Open SqlStr,conn,1,1
i=1
%>
< table width="90%" border="1" cellspacing="0" sellpadding="0">
< tr>
< %
do while not rs.eof
%>
< td align="center">
< img src="< %=rs("imgurl")%>" width="52" height="120">< br>
< %=rs("productname")%>
< /td>
< % if i mod 4=0 then response.write"< /tr>< tr>"
i=i+1
rs.movenext
loop
rs.close
%>
< /tr>
< /table>
14、ASP數(shù)據(jù)庫(kù)連接之ACCESS-SQLSERVER
< %
IsSqlData=0 定義數(shù)據(jù)庫(kù)類(lèi)別,0為Access數(shù)據(jù)庫(kù),1為SQL數(shù)據(jù)庫(kù)
If IsSqlData=0 Then
Access數(shù)據(jù)庫(kù)
datapath ="data/" 數(shù)據(jù)庫(kù)目錄的相對(duì)路徑
datafile ="data.mdb" 數(shù)據(jù)庫(kù)的文件名
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(""&datapath&""&datafile&"")
Connstr="DBQ="&server.mappath(""&datapath&""&datafile&"")&";DRIVER={Microsoft Access Driver (*.mdb)};"
Else
SQL數(shù)據(jù)庫(kù)
SqlLocalName ="(local)" 連接IP [ 本地用 (local) 外地用IP ]
SqlUsername ="sa" 用戶(hù)名
SqlPassword ="1" 用戶(hù)密碼
SqlDatabaseName="data" 數(shù)據(jù)庫(kù)名
ConnStr = "Provider=Sqloledb;User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
END IF
On Error Resume Next
Set conn=Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "數(shù)據(jù)庫(kù)連接出錯(cuò),請(qǐng)檢查連接字串。"
Response.End
End If
On Error GoTo 0
%>
15.用下拉列表框的下拉操作讀庫(kù)
<select name="select2" class=pageselect onChange="javascript:location.href=this.options[selectedIndex].value">
<option value="chanpin_zonghui.asp?fenleiid=0" selected>全部產(chǎn)品</option>
<option value="chanpin_zonghui.asp?fenleiid=1" >精品推薦</option>
<option value="chanpin_zonghui.asp?fenleiid=2" >安全閥</option>
<option value="chanpin_zonghui.asp?fenleiid=3" >過(guò)濾閥</option>
<option value="chanpin_zonghui.asp?fenleiid=4" >疏水閥</option>
<option value="chanpin_zonghui.asp?fenleiid=5" >控制閥</option>
<option value="chanpin_zonghui.asp?fenleiid=6" >調(diào)節(jié)閥</option>
<option value="chanpin_zonghui.asp?fenleiid=7" >電磁閥</option>
<option value="chanpin_zonghui.asp?fenleiid=8" >止回閥</option>
<option value="chanpin_zonghui.asp?fenleiid=9" >旋塞閥</option>
<option value="chanpin_zonghui.asp?fenleiid=10" >截止閥</option>
<option value="chanpin_zonghui.asp?fenleiid=11" >閘閥</option>
<option value="chanpin_zonghui.asp?fenleiid=12" >蝶閥</option>
<option value="chanpin_zonghui.asp?fenleiid=13" >球閥</option>
<option value="chanpin_zonghui.asp?fenleiid=14" >其它</option>
</select>
獲取數(shù)據(jù)用request.QueryString("fenleiid")
16.文本框的特效
<input name="key" type="text" class="button" onFocus="this.select()" onBlur="if (value ==''){value='請(qǐng)輸入關(guān) 鍵字'}" onClick="if(this.value=='請(qǐng)輸入關(guān)鍵字')this.value=''"
onMouseOver="this.focus()" value="請(qǐng)輸入關(guān)鍵字" size="13" maxlength="50">
17.驗(yàn)證是否為空,鼠標(biāo)脫離文本框讀庫(kù)
<script language="javascript">
function stucode()
{
if(document.form1.stcode.value=="")
{
alert('該學(xué)號(hào)不能為空!??!');
}
else
{
location.href='index.asp?stucode='+document.form1.stcode.value
}
}
</script>
<%
on error resume next
stucode=trim(request("stucode"))
if stucode<>"" then
conn.open connstr
strSql="Select * From sheet1 Where stcode='"&trim(stucode)&"'"
'response.Write strSql
set rs=conn.execute(strSql)
if rs.eof then
%>
<script language=javascript>alert('該學(xué)號(hào)學(xué)生不存在?。?!');window.history.go(-1)</script>
<%
end if
end if
%>
<input name="stcode" type="text" id="stcode" onBlur="stucode()" value="<%=stucode%>">
<input name="username" type="text"<%if not rs.eof then %> value="<%=rs("username")%>"<%end if%>>
<input name="tel1" type="text" id="tel1"<%if not rs.eof then %> value="<%=rs("tel1")%>"<%end if%>>
<input name="tel2" type="text" id="tel2"<%if not rs.eof then %> value="<%=rs("tel2")%>"<%end if%>>
<tr>
<td><label>
<input type="radio" name="sex" value="男"<%if not rs.eof and rs("sex")="男" then %> checked<%end if%>>
男</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="sex" value="女"<%if not rs.eof and rs("sex")="女" then %> checked<%end if%>>
女</label></td>
</tr>
<select name="classb" id="classb">
<option value="<%=rs("classb")%>"><%=rs("classb")%></option>
</select>
<select name="department" id="department">
<option value="<%=rs("department")%>"><%=rs("department")%></option>
</select>
<select name="selectfz" id="selectfz">
<%if rs("department")="計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)" then%>
<option value="網(wǎng)絡(luò)技術(shù)支持">網(wǎng)絡(luò)技術(shù)支持</option>
<option value="WEB網(wǎng)頁(yè)設(shè)計(jì)">WEB網(wǎng)頁(yè)設(shè)計(jì)</option>
<option value="網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理">網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理</option>
<%else%>
<option value="WEB網(wǎng)頁(yè)設(shè)計(jì)">WEB網(wǎng)頁(yè)設(shè)計(jì)</option>
<option value="網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理">網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理</option>
<option value="信息安全">信息安全</option>
<%end if%>
</select>
18。圖片的上傳方法
1、在數(shù)據(jù)添加表單中加入用來(lái)保存上傳的圖片地址和文件的輸入框,記下表單名稱(chēng)和這個(gè)輸入框的名稱(chēng),以備后面修改時(shí)候用。
2、在需要調(diào)用上傳的輸入框后面加上<iframe name="ad" frameborder=0 width=80% height=30 scrolling=no src=upload.asp></iframe>
3、修改upload.asp,找到其中的<%if request.QueryString("filename")<>"" then response.write "<script>parent.form1.textfield6.value='"&request.QueryString("filename")&"'</script>"%>;修改其中的form1.textfield6為, 上面第一條中記錄的表單名和輸入框名稱(chēng)。
4、修改upfile.asp,找到其中第5行formPath="../../TempPic",然后修改=號(hào)后面的上傳圖片保存目錄名稱(chēng)就ok了
19。連續(xù)不斷的滾動(dòng)
<div id="marquees"> <!-- 這些是字幕的內(nèi)容,你可以任意定義 --> <a href="#">鏈接1</a>
<br> <a href="#">鏈接2</a>
<br> <a href="#">鏈接3</a>
<br> <a href="#">鏈接4</a>
<br> <!-- 字幕內(nèi)容結(jié)束 -->
</div>
<!-- 以下是javascript代碼 -->
<script language="javascript">
<!--
marqueesHeight=200; //內(nèi)容區(qū)高度
stopscroll=false; //這個(gè)變量控制是否停止?jié)L動(dòng)
with(marquees){
noWrap=true; //這句表內(nèi)容區(qū)不自動(dòng)換行
style.width=0; //于是我們可以將它的寬度設(shè)為0,因?yàn)樗鼤?huì)被撐大()
style.height=marqueesHeight;
style.overflowY="hidden"; //滾動(dòng)條不可見(jiàn)
onmouseover=new Function("stopscroll=true"); //鼠標(biāo)經(jīng)過(guò),停止?jié)L動(dòng)
onmouseout=new Function("stopscroll=false"); //鼠標(biāo)離開(kāi),開(kāi)始滾動(dòng)
}
//這時(shí)候,內(nèi)容區(qū)的高度是無(wú)法讀取了。下面輸出一個(gè)不可見(jiàn)的層"templayer",稍后將內(nèi)容復(fù)制到里面:
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');
function init(){ //初始化滾動(dòng)內(nèi)容
//多次復(fù)制原內(nèi)容到"templayer",直到"templayer"的高度大于內(nèi)容區(qū)高度:
while(templayer.offsetHeight<marqueesHeight){
templayer.innerHTML+=marquees.innerHTML;
} //把"templayer"的內(nèi)容的“兩倍”復(fù)制回原內(nèi)容區(qū):
marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;
//設(shè)置連續(xù)超時(shí),調(diào)用"scrollUp()"函數(shù)驅(qū)動(dòng)滾動(dòng)條:
setInterval("scrollUp()",20);
}
document.body.onload=init;
preTop=0; //這個(gè)變量用于判斷滾動(dòng)條是否已經(jīng)到了盡頭
function scrollUp(){ //滾動(dòng)條的驅(qū)動(dòng)函數(shù)
if(stopscroll==true) return; //如果變量"stopscroll"為真,則停止?jié)L動(dòng)
preTop=marquees.scrollTop; //記錄滾動(dòng)前的滾動(dòng)條位置
marquees.scrollTop+=1; //滾動(dòng)條向下移動(dòng)一個(gè)像素
//如果滾動(dòng)條不動(dòng)了,則向上滾動(dòng)到和當(dāng)前畫(huà)面一樣的位置
//當(dāng)然不僅如此,同樣還要向下滾動(dòng)一個(gè)像素(+1):
if(preTop==marquees.scrollTop){
marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1;
}
}
-->
</script>