分享

asp 学习笔记

 永顺 2010-10-20

1.打开和关闭数据库连接
<%
Dim conn
Dim connstr
Dim db
db=“database/数据库名.mdb”
set conn=sever.CreateObject(“ADODB.Connection”)
connstr=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & server.MapPath(db) //获取根目录
conn.Open connstr

sub CloseConn()
   conn.close
   set conn=nothing
end sub
%>

2. 循环显示记录集中指定列所有内容
<%
Dim rs,sql
Set rs=server.CreateObject(“adodb.recordset”)
sql=”select * from 表名 order by id desc” //倒序排列
rs.open sql,conn,1,1 //表示权限为只读 补充:1,3表示可写入
do while not rs.eof
//记录集指针下一行不为空。补充: bof 则指指针上一行,not (rs.bof and rs.eof)表示非空
response.Write(rs(“列名”))
rs.movenext
loop
%>

3. 网页显示中文字符
<meta http-equiv…………….; charset=gb2312” /> //显示中文字符标签

4. 网页内部引用asp文件
<!--#include file=”inc/conn.asp”-->   //内部引用代码

5.读取数据库数据,关闭记录集以节省资源
<%
Sql=”select * from 表名 where 列名… order by id desc”
rs.open sql,conn,1,1
logopic=rs(“列名”)
rs.colse
%>
<img src=”<%=logopic%>” alt=”网站logo” /> //读取数据

6.函数+for+if
<%
function itemClassDetail(itemClass)
dim rsitem,sqlitem,content,bottom
set rsitem=server.CreateObject(“Adodb.Recordset”)
sqlitem=”select * from item where itemClass=’”&itemClass&”’ order by id”
rsitem.open sqlitem,conn,1,1
for i=1 to 5
if i=5 then
bottom=”leftdetail detailbottom”
else
bottom=”leftdetail”
end if
content=conten&”<li class=’”&tottom&”’>”<a href=’”&rsitem(“Link”)&”’ target=’_blank’>”&rsitem(“itemDetail”)&”</a></li>”
// conten&表每次循环都是在原来conten变量值基础上再加上(&”” 表连接上)
rsitem.movenext //每循环一次下移到下一条记录
next
itemClassDetail=content
rsitem.close
end function
%>

7.后台验证登录页
<!--#include file=/inc/conn.asp--> //连接数据库
<!--#include file=/inc/md5.asp--> //给密码加密解密
<%
dim rs,sql,username,password
username=replace(trim(request(“username”)),”’”,””)
password=replace(trim(request(“password”)),”’”,””)
password=md5(password) //用md5函数给密码加密
//trim用来去除前后的空格,replace把第一个“”内的内容替代为第二个“”内的内容
set rs=sever.CreateObject(“ADODB.Connection”)
sql=“select * from 用户表 where username=’”&username&”’ and password=’”&password&”’”
rs.Open sql,conn,1,1
if not (rs.bof and rs.eof) then
session(“user”)=rs(“username”)
session(“power”)=rs(“power”)
session.timeout=120
rs.close
set rs=nothing //清空内存中的rs数据集
call CloseConn()
response.redirect “manage.asp”
else
response.redirect(“login.asp”)
end if
rs.close
set rs=nothing
call CloseConn()
%>

8.页面框架(分为左右两个框架)
<frameset framespace=”0” border=”false” cols=”160,*” frameborder=”1”>
<frame name=”left” scrolling=”auto” marginwidth=”0” src=”left.asp”>
<frame name=”right” scrolling=”auto” marginwidth=”0” src=”right.asp”>
//此处的name 跟后面出现的链接有关,如<a href=”” target=”right”>添加产品</a>
</frameset>
<noframes>
<body><p>对不起,您的浏览器不支持框架</p></body>
</noframes>

9. 确定当前用户身份
用户名:<%=session(“user”)%><br>
管理权限:<%if session(“power”)=1 then
response.Write(“超级管理员”)
else
response.write(“普通用户”)
end if
%>

10. 用户操作权限管理
<%if session(“power”)<2 then%>
<td>---显示权限<2的菜单项----</td>
<%else%>
<td>---显示相应权限>1的菜单项----</td>
<%end if%>

11.页面访问权限
<%
Option explicit   //表不支持隐式声明,即本页含引用页中的所有变量必须先声明才能使用Response.buffer=true //属于缓存,若为true则本页含引用页全部下载完成后再显示
Const PowerLever=3 //声明一个权限常量3
If session(“power”)>PowerLever then
Response.write “<p>您没有操作的权限</p>”
Response.end //停止输出
End if
%>

12.下拉列表数据绑定
<script language=”javascript” type=”text/javascript”>
Function changevalue(va)
{
Window.open(“articleadd.asp?articleClass=”+va,target=”_selt”); //选择后重新刷新页面
}
</script>
<%
dim rs,sql
set rs= server.CreateObject(“Adodb.Recordset”)
sql=”select * from ArticleClass order by id”
rs.open sql,conn,1,1
%>
<select name=”ArticleClass” size=”1” onChange=”changevalue(this.value)”>
<option value=””>请选择栏目</option>
<%do while not rs.eof%>
<option value=”<%=rs(“ArticleClass”)%>”<%=rs(“AticleClass”)%></option>
<%
rs.movenext
loop
</select>
%>
页面结束时别忘了关闭数据连接和数据集:
<%
rs.close
set rs=nothing
call CloseConn()
%>

13.获取前面选择参数articleClass的值作为变量,供下一级利用
<%
Dim rd,sql,A
A=request.QueryString(“articleClass”)
set rs= server.CreateObject(“Adodb.Recordset”)
sql=”select * from articleClass where ArticleClass=’”&A&”’ order by id”
rs.open sql,conn,1,1
%>

14.修改或删除某条记录
<a href=”articleEdit.asp?articleID=<%=rs(“articleID”)%>”>修改</a>
<a href=”articleDel.asp?articleID=<%=rs(“articleID”)%>&Action=Del” onClick=”return confirmDel();”>删除</a>

15.执行数据库操作
conn.execute “update article set content =’”&content&”’ where id=’”&rs(“id”)&”’”
rs(“content”)=content
rs.update
rs.close
conn.close

16.自定义子过程sub和自定义函数function的区别

SUB和FUNCTION有什么不同呢,他们的语法应该怎么构成?
Sub:过程; Function:函数,可以带返回值
语法:
Sub SubName(参数1, 参数2,...)
....
End Sub

Function FunctionName(参数1, 参数2,...)
...
FunctionName = 返回值
End Function

举例:

sub是过程不需要返回值,function是函数,需要返回值,如下:
Function NameOfFunction(parameter1, parameter2)
'some code
NameOfFunction = return value
End Function
________________________________________________
Sub NameOfSubRoutine(parameter1, parameter2)
'some code...
End Sub

sub()是子过程.没有返回值. 其中的变量在全局可以调用.
function()是函数.可以有返回值.也可以无返回值. 其中的变量在全局无法调用.

除了function有返回一个值的区别外,我发现在ASP中好像没有多大的区别,我把所有的sub写成FUNCTION好像效果一样。

调用:functionname()

而 call subname()

17.sql语法中,数值 不加'',而字符串必须加''

18. 变量里面直接调用,外面加"&变量&"

19.数据表命名必须避开SQL关键字,如订单表不能命名为order

20.如何将asp程序缓冲

这个问题其实很简单,只要在asp程序的第一行加上:
<% Response.Buffer = True %>
就可以了。
这句话的意思就是指明输出页面是否被缓冲,当属性值为True时,服务器将不会向客户端发送任何信息,

直到所有程序执行完或者遇到
<% Response.Flush %>或<% Response.End %>
语句,才会释放缓冲区的信息。

21.调试语句
response.Write(productlist)
response.End()


22.CLng 函数与 Fix 和 Int 函数功能不同,后两者函数对数值的小数部分进行截尾取整而不是四舍五入

当小数部分恰好等于 0.5 时, CLng 函数通常向与此数最接近的偶数取整。例如,0.5 取整为 0、1.5

取整为 2。

23.Option Explicit 语句 在模块级别中使用,强制显式声明模块中的所有变量。 语法Option Explicit说

明如果使用,Option Explicit 语句必须写在模块的所有过程之前。如果模块中使用了 Option Explicit

,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。如果使用了未声

明的变量名在编译时间会出现错误。如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定

了缺省类型,否则所有未声明的变量都是 Variant 类型的。注意 使用 Option Explicit 可以避免在键

入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。
用 Option Explicit 之后,必须对变量进行声明才可以使用!


24. mod 绝对值
MOD——取余运算符
MOD是取余运算符   
<%
if (rs.recordcount mod 4)=0 then
for i=1 to (rs.recordcount/4)
if rs.eof then exit for
rs.movenext
next
else
for i=1 to (rs.recordcount/4+1)
end if
%>

25.Instr是判断一个字符串中是否包含另一个字符串的函数
语法为:
instr (被搜索的字符串,要搜索的字符串)

26.跳转代码
<meta http-equiv="refresh" content="0;url=c.asp">
其中“0”就是控制跳转的时间,单位“秒”,直接跳转就是“0”,“url”为跳转的页面。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多