asp能完成很多的功能,但是每个例子都有它的独特性,要使用统一的方法很难,为了大家不重复的提问
每个功能,建议编写asp各种功能函数库,以便大家相互学习,统一编码,提到水平
编写函数的要求
1、函数名称
2、函数的简单介绍
3、函数的内容
4、函数的调用例子
例如:
函数名称:通用打开access数据库的函数
函数说明:通用打开asp数据库的函数
<%
function openAccessDB
AccessDb=access.mdb
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessDB)
conn.Open connstr
End Function
%>
函数名称:通用关闭access数据库的函数
函数说明:同上
function CloseAccessDB
Conn.close
Set conn = Nothing
End Function
函数调用
<%
openaccessDB
sql="select * from art"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
.................
CloseAccessDB
%>
下面的代码是一个购物车的类!
<%
Class CartKit ’开始类CartKit的定义
Sub CreateCart()
If IsArray(Session("Cart")) = False Then
Dim aryCart(19,2)
Session("Cart") = aryCart
End If
End Sub
Function CheckCart()
If IsArray(Session("Cart")) Then
CheckCart = True
Else
CheckCart = False
End If
End Function
Function CheckItem(ID)
Dim aryCart
If CheckCart = True Then
aryCart = Session("Cart")
For i = LBound(aryCart) To UBound(aryCart)
If aryCart(i,0) = ID Then
CheckItem = True
Exit Function
ElseIf aryCart(i,0) <> ID Then
CheckItem = False
End If
Next
End If
End Function
Function RemoveItem(ID)
dim i,intPos,aryRemoveCart
aryCartRemove = Session("Cart")
For i = LBound(aryCart) To UBound(aryCart)
If aryCart(i,0) = ID Then
intPos = i
Exit For
End If
Next
For i = intPos To UBound(aryRemoveCart) - 1
If Not aryRemoveCart(i,0) = "" Then
aryRemoveCart(i,0) = aryRemoveCart(i+1,0)
aryRemoveCart(i,1) = aryRemoveCart(i+1,1)
aryRemoveCart(i,2) = aryRemoveCart(i+2,2)
End If
Next
Session("Cart") = aryRemoveCart
End Function
Function UpdateItem(ID,Num)
dim aryUpdateCart,i
aryUpdateCart = Session("Cart")
For i = LBound(aryUpdateCart) To UBound(aryUpdateCart)
If aryUpdateCart(i,0) = ID Then
aryUpdateCart(i,1) = Num
Session("Cart") = aryUpdateCart
End If
Next
End Function
Function AddItem(ID,Num)
Dim btnCartStatus,aryAddCart
btnCartStatus = CheckCart
If btnCartStatus = False Then
CreateCart
aryAddCart = Session("Cart")
aryAddCart (0,0) = ID
aryAddCart (0,1) = Num
Session ("Cart") = aryAddCart
Exit Function
ElseIf btnCartStatus = True Then
If CheckItem(ID) = True Then
UpdateItem ID,Num
ElseIf CheckItem(ID) = False Then
aryAddCart = Session("Cart")
For i = LBound(aryAddCart) To UBound(aryAddCart)
If aryAddCart(i,0) = "" Then
aryAddCart(i,0) = ID
aryAddCart(i,1) = Num
Session("Cart") = aryAddCart
Exit Function
End If
Next
End If
End If
End Function
End Class
%>
通用分页函数
<%
’调用方法如下
’Create Recordset Object的代码这儿就不贴了
PageSize = 5
RecordCount=rs.recordcount
Call TurnPage(rs,"admin_product.asp?info=" & strID,recordcount)
’###############################################
’翻页函数
’传入参数: objRS (记录集)
’调用翻页过程的文件名,如需要参数,则跟上参数
’Records ’总记录条数
’输 出: 记录集翻页显示功能
Sub TurnPage(ByRef objRS,FileName,Records)
If objRS.Eof And objRS.Bof Then Exit Sub
Dim FormPage,strPageInfo
Dim TotalPage
Dim PageNo ’当前显示的是第几页
Dim postion
PageNo = Trim(Request.QueryString ("PageNo"))
’许算总页数
TotalPage = INT(Records / PageSize * -1)*-1
If PageNo = "" Then PageNo = Trim(Request.Form("PageNo"))
’如果没有选择第几页,则默认显示第一页;
If PageNo <> "" Then PageNo = CInt(PageNo)
If (PageNo = "" OR PageNo > TotalPage) Then PageNo = 1
objRS.AbsolutePage = PageNo
postion = InstrRev(FileName,"?")
FormPage = FileName
If postion > 0 Then
FileName = FileName & "&PageNo="
Else
FileName = FileName & "?PageNo="
End If
%>
<script language="javascript">
<!--
function test(){
if (document.gopage.PageNo.value=="" || isNaN(document.gopage.PageNo.value)) {
alert("输入页数必须为数字");
document.gopage.PageNo.focus();
return false;
}
return true;
}
// -->
</script>
<table border=0 width=’100%’ cellspacing="0" cellpadding="0" bgcolor="#98cefb">
<tr>
<td align="center" valign="middle">
<%
If TotalPage > 1 Then
If PageNo <= 1 Then
Response.Write ("首页 前页 <a href=""" & FileName & PageNo+1 & """>后页</a> <a href=""" & FileName & TotalPage & """>末页</a>")
Else
If PageNo >= TotalPage Then
Response.Write ("<a href=""" & FileName & "1"">首页</a> <a href=""" & FileName & PageNo -1 & """>前页</a> " & "后页 末页")
Else
Response.Write ("<a href=""" & FileName & "1"">首页</a> <a href=""" & FileName & PageNo -1 & """>前页</a> " & "<a href=""" & FileName & PageNo+1 & """>后页</a> <a href=""" & FileName & TotalPage & """>末页</a>")
End If
End If
Response.Write ("页次:<font color=""#FFFFFF"">" & PageNo & "</Font>/" & TotalPage & "页 共<font color=""#ffffff"">" & Records & "</font>篇文章 <font color=""#ffffff"">" & PageSize & "</font>篇/页")
%>
</td>
<form onSubmit="return test();" name=gopage action=<%=formpage%> method="post">
<td align=right>第</td>
<td>
<input type=text name=PageNo size=3 value="" class=input maxlength=4 title=请输入页号,然后回车>页
<input type="submit" value="GO" name=button class=button_s>
</td>
</form>
<%
End If
%>
</td>
</tr>
</table>
<%End Sub%>
<%
’这是我用ASP写的一个N进制转换的函数,不过还有局限性,感兴趣的可以测试一下,有问题请告诉我
’【题目】任意进制间的互化。
’ 把n进制的M转化成k进制表示
’ 如m=ff n=16 k=2
’ 则有 (ff)16=(11111111)2
’【参考程序】
Dim a(100)
’将N进制转换成十进制
Function NTOD(m,n)
Dim cf,i,j
m = Trim(m)
For i=1 TO Len(m)
sTemp = Mid(m,Len(m)-i+1,1)
If (sTemp<="9") And (sTemp>="0") Then
a(i)=Asc(sTemp)-48
End If
If (Ucase(sTemp)<="F") And (Ucase(sTemp)>="A") Then
a(i) = Asc(Ucase(sTemp))-55
End If
s = s + a(i) * n^(i-1)
Next
NTOD = s
End Function
’将十进制转成N进制
Function DTON(m,n)
If n = 10 Then
DTON = m
Exit Function
End If
Dim i,j
i = 0
Do
i = i + 1
a(i) = m Mod n
m = m \ n
Loop While(m<>0)
For j=i To 1 step -1
If a(j)>9 Then
DTON = DTON & Chr(a(j)+55)
Else
DTON = DTON & a(j)
End If
Next
End Function
Function NTOK(m,n,k)
s = NTOD(m,n)
NTOK = DTON(s,k)
End Function
’调用示例
’参数1:"abf"是需要转换的字符串
’参数2:16是指需要转换字符串原来的进制
’参数3:8是指将要转换成进制
Response.Write (NTOK("abf",16,8))
%>
每个功能,建议编写asp各种功能函数库,以便大家相互学习,统一编码,提到水平
编写函数的要求
1、函数名称
2、函数的简单介绍
3、函数的内容
4、函数的调用例子
例如:
函数名称:通用打开access数据库的函数
函数说明:通用打开asp数据库的函数
<%
function openAccessDB
AccessDb=access.mdb
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessDB)
conn.Open connstr
End Function
%>
函数名称:通用关闭access数据库的函数
函数说明:同上
function CloseAccessDB
Conn.close
Set conn = Nothing
End Function
函数调用
<%
openaccessDB
sql="select * from art"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
.................
CloseAccessDB
%>
下面的代码是一个购物车的类!
<%
Class CartKit ’开始类CartKit的定义
Sub CreateCart()
If IsArray(Session("Cart")) = False Then
Dim aryCart(19,2)
Session("Cart") = aryCart
End If
End Sub
Function CheckCart()
If IsArray(Session("Cart")) Then
CheckCart = True
Else
CheckCart = False
End If
End Function
Function CheckItem(ID)
Dim aryCart
If CheckCart = True Then
aryCart = Session("Cart")
For i = LBound(aryCart) To UBound(aryCart)
If aryCart(i,0) = ID Then
CheckItem = True
Exit Function
ElseIf aryCart(i,0) <> ID Then
CheckItem = False
End If
Next
End If
End Function
Function RemoveItem(ID)
dim i,intPos,aryRemoveCart
aryCartRemove = Session("Cart")
For i = LBound(aryCart) To UBound(aryCart)
If aryCart(i,0) = ID Then
intPos = i
Exit For
End If
Next
For i = intPos To UBound(aryRemoveCart) - 1
If Not aryRemoveCart(i,0) = "" Then
aryRemoveCart(i,0) = aryRemoveCart(i+1,0)
aryRemoveCart(i,1) = aryRemoveCart(i+1,1)
aryRemoveCart(i,2) = aryRemoveCart(i+2,2)
End If
Next
Session("Cart") = aryRemoveCart
End Function
Function UpdateItem(ID,Num)
dim aryUpdateCart,i
aryUpdateCart = Session("Cart")
For i = LBound(aryUpdateCart) To UBound(aryUpdateCart)
If aryUpdateCart(i,0) = ID Then
aryUpdateCart(i,1) = Num
Session("Cart") = aryUpdateCart
End If
Next
End Function
Function AddItem(ID,Num)
Dim btnCartStatus,aryAddCart
btnCartStatus = CheckCart
If btnCartStatus = False Then
CreateCart
aryAddCart = Session("Cart")
aryAddCart (0,0) = ID
aryAddCart (0,1) = Num
Session ("Cart") = aryAddCart
Exit Function
ElseIf btnCartStatus = True Then
If CheckItem(ID) = True Then
UpdateItem ID,Num
ElseIf CheckItem(ID) = False Then
aryAddCart = Session("Cart")
For i = LBound(aryAddCart) To UBound(aryAddCart)
If aryAddCart(i,0) = "" Then
aryAddCart(i,0) = ID
aryAddCart(i,1) = Num
Session("Cart") = aryAddCart
Exit Function
End If
Next
End If
End If
End Function
End Class
%>
通用分页函数
<%
’调用方法如下
’Create Recordset Object的代码这儿就不贴了
PageSize = 5
RecordCount=rs.recordcount
Call TurnPage(rs,"admin_product.asp?info=" & strID,recordcount)
’###############################################
’翻页函数
’传入参数: objRS (记录集)
’调用翻页过程的文件名,如需要参数,则跟上参数
’Records ’总记录条数
’输 出: 记录集翻页显示功能
Sub TurnPage(ByRef objRS,FileName,Records)
If objRS.Eof And objRS.Bof Then Exit Sub
Dim FormPage,strPageInfo
Dim TotalPage
Dim PageNo ’当前显示的是第几页
Dim postion
PageNo = Trim(Request.QueryString ("PageNo"))
’许算总页数
TotalPage = INT(Records / PageSize * -1)*-1
If PageNo = "" Then PageNo = Trim(Request.Form("PageNo"))
’如果没有选择第几页,则默认显示第一页;
If PageNo <> "" Then PageNo = CInt(PageNo)
If (PageNo = "" OR PageNo > TotalPage) Then PageNo = 1
objRS.AbsolutePage = PageNo
postion = InstrRev(FileName,"?")
FormPage = FileName
If postion > 0 Then
FileName = FileName & "&PageNo="
Else
FileName = FileName & "?PageNo="
End If
%>
<script language="javascript">
<!--
function test(){
if (document.gopage.PageNo.value=="" || isNaN(document.gopage.PageNo.value)) {
alert("输入页数必须为数字");
document.gopage.PageNo.focus();
return false;
}
return true;
}
// -->
</script>
<table border=0 width=’100%’ cellspacing="0" cellpadding="0" bgcolor="#98cefb">
<tr>
<td align="center" valign="middle">
<%
If TotalPage > 1 Then
If PageNo <= 1 Then
Response.Write ("首页 前页 <a href=""" & FileName & PageNo+1 & """>后页</a> <a href=""" & FileName & TotalPage & """>末页</a>")
Else
If PageNo >= TotalPage Then
Response.Write ("<a href=""" & FileName & "1"">首页</a> <a href=""" & FileName & PageNo -1 & """>前页</a> " & "后页 末页")
Else
Response.Write ("<a href=""" & FileName & "1"">首页</a> <a href=""" & FileName & PageNo -1 & """>前页</a> " & "<a href=""" & FileName & PageNo+1 & """>后页</a> <a href=""" & FileName & TotalPage & """>末页</a>")
End If
End If
Response.Write ("页次:<font color=""#FFFFFF"">" & PageNo & "</Font>/" & TotalPage & "页 共<font color=""#ffffff"">" & Records & "</font>篇文章 <font color=""#ffffff"">" & PageSize & "</font>篇/页")
%>
</td>
<form onSubmit="return test();" name=gopage action=<%=formpage%> method="post">
<td align=right>第</td>
<td>
<input type=text name=PageNo size=3 value="" class=input maxlength=4 title=请输入页号,然后回车>页
<input type="submit" value="GO" name=button class=button_s>
</td>
</form>
<%
End If
%>
</td>
</tr>
</table>
<%End Sub%>
<%
’这是我用ASP写的一个N进制转换的函数,不过还有局限性,感兴趣的可以测试一下,有问题请告诉我
’【题目】任意进制间的互化。
’ 把n进制的M转化成k进制表示
’ 如m=ff n=16 k=2
’ 则有 (ff)16=(11111111)2
’【参考程序】
Dim a(100)
’将N进制转换成十进制
Function NTOD(m,n)
Dim cf,i,j
m = Trim(m)
For i=1 TO Len(m)
sTemp = Mid(m,Len(m)-i+1,1)
If (sTemp<="9") And (sTemp>="0") Then
a(i)=Asc(sTemp)-48
End If
If (Ucase(sTemp)<="F") And (Ucase(sTemp)>="A") Then
a(i) = Asc(Ucase(sTemp))-55
End If
s = s + a(i) * n^(i-1)
Next
NTOD = s
End Function
’将十进制转成N进制
Function DTON(m,n)
If n = 10 Then
DTON = m
Exit Function
End If
Dim i,j
i = 0
Do
i = i + 1
a(i) = m Mod n
m = m \ n
Loop While(m<>0)
For j=i To 1 step -1
If a(j)>9 Then
DTON = DTON & Chr(a(j)+55)
Else
DTON = DTON & a(j)
End If
Next
End Function
Function NTOK(m,n,k)
s = NTOD(m,n)
NTOK = DTON(s,k)
End Function
’调用示例
’参数1:"abf"是需要转换的字符串
’参数2:16是指需要转换字符串原来的进制
’参数3:8是指将要转换成进制
Response.Write (NTOK("abf",16,8))
%>