ASP学习步骤
个对象 RequestResponseSessionServerApplictaion
两个数据库组件 AdodbRecordset AdodbConnection
RequestFrom("表单名称") 得到From表单数据
RequestQueryString("Url参数") 得到Url参数
indexasp?act=save
RequestQueryString("act")
一request
RequestCookies("Cookie") 得到Cookies Cookies 一般用于存储用户信息 用于验证 一般用于用户验证之类的 Session也有同样的类型 区别是Session是存在服务器上 Cookies是存在用户硬盘上 一般可以省略点方法 直接用Request("参数名") 他会依次用From QueryString Cookies去取值 Request 差不多就这些了
二Response
ResponseWrite 向浏览器输出
ResponseRedirect 重转向
ResponseEnd 停止向浏览器输出
ResponseCookies 向客户端写Cookies
ResponseCookies("CookieName") = "test"
ResponspCookies("CookieName")Domain="chinacom" 这样写的话 在所有的Chinacom的域名下用RequestCookies("CookieName")都能得到
三Session
Session("SessionName") = "" 把信息存储到Session里面
If Session("SessionName") <> "" Then 判断Session是否存在 一般用于验证 Session("SessionName") = "" 清空Session
SessionAbandon 清空所有Session
SessionTimeOut = 设置Session过期时间 单位为秒
Session是存在服务器上 Cookies是存在用户硬盘上 Session重启了进程池就没有了 Cookies我们就不能控制了 除非写个程序 强制清空
四Server
ServerMappath 把虚拟路径转为实际路径如果你的程序在C盘 那么你用path = ServerMappath("/") 那么和path = "c:" 是一样的 基于根目录
ServerCreateObject 这个注册组件的 比较常用 ServerCreateObject("AdodbRecordSet") 注册一个数据库组件
五 Applictaion 是一个全局对象 他和Session是一样的 区别在于 Session是存储单个的用户信息 Application是存储全局信息
Application("Site") = "Http://www`````com" 只要在该站点下的所有文件都可以调用这个Application 二级域名不可以调用这个Application而要用Cookies 设置他的可用域名
=======================================================
六AdodbConnection 连接数据库 先注册一个Conn对象 Set Conn = ServerCreateObject("AdodbConnection") //用Server对象的CreateObject方法 然后再用Connection的open方法连接数据库 ConnOpen "Provider=MicrosoftJetOLEDB;Data Source="&ServerMappath("Datemdb") ServerMappath("Datemdb")即当前目录下面的DateMdb 一般我们把这个放在Connasp里面
<%
Dim ConnConnStr
Set Conn = ServerCreateObject("AdodbConnection")
ConnStr = "Provider=MicrosoftJetOLEDB;Data Source="&ServerMappath("Datemdb")
ConnOpen ConnStr
%>
Dim是定义一个变量asp是弱类型语言 不用定义也可以的不像C# Java之类的要先定义才能使用
Execute 方法 ConnExecute(Sql) 执行一条SQL语句 ConnExecute("Insert Into Tablename()Values()")
ConnClose 关闭对象 insert 插入一条数据 update修改数据 delete删除 select 查询
七AdodbRecordset 返回一个记录集 先也是注册对象 Set Rs = ServerCreateObject("AdodbRecordset") 这个rs是可以自己定义的 不一定一定要用rs 或者conn 因为这些是Com组件(也就是用deiphl C++写的dll一些asp本身不能实现的功能 ) 不是asp的内置对象 所以要注册对象
然后也是用Open方法打开记录集 RsOpen "Select * From TableName"Conn RsOpen Sql语句Conn对象 (参数一会讲)Sql语句 一般是一条查询语句 Conn对象就是刚才上面Connection打开的数据库对象
打开数据库的游标类型
这个参数这里 如果改为的话 就不能对库进行操作不能更新和删除(不能使用RsAddnewRsUpdateRsDelete) 改为 以独占的形式打开(当有一个用户在修改库的时候就会锁定库保持数据的一致性)
可以对库进去任何操作包括删除 修改 更新 添加
这里一般我会用两种 在列表页的时候 因为不用操作库只读查询就行了 RsOpen SqlConn 在添加修改数据的时候 用RsOpen SqlConn RsBof 是否为第一条数据 是 返回 True 反之 返回False RsFof 是否为最后 一条数据 是 返回 True 反之 返回False 那就可以用这个来判断数据库里有没有记录 if rseof and rsbof then 就是说当前游标 不在第一条也不在最后一条 就说明没有记录 if rseof then 这样说明有记录 那么我们就用个循环把数据输出 Rs和Conn一样理解是变量
Set Rs = ServerCreateObject("AdodbRecordset")
RsOpen SqlConn
If Not RsEof Then 如果不在记录集的未端说明有记录
Do While Not RsEof 直到该记录集的最后 跳出循环
ResponseWrite Rs("字段名")
RsMoveNext 游标向下移动
Loop
End If
RsClose //注销对象
Set Rs = Nothing //释放资源
因为asp是弱类型的 定量对象时不用定义类型
如果是C# 就是
int i; string str; asp 就 dim istr 还有asp定义变量不能赋初始值
C# int i = ;
asp dim i i =
下面讲一下指针移动(就上面的游标应该是指针游标是C语言里面的asp没有)
RsMoveNext 向下移动一条
RsMovePrevious 向上移动一条
RsMovefirst 移动到第一条
RsMoveLast 移动到最后一条
RsAbsoluteposition = n 移动记录指针到第n行
常用的就RsMoveNext
讲asp分页的几个方法属性
RsPagesize = n 每页显示N条数据
Rsabsolutepage = n 将记录指针移动第N页的第一条数据
RsRecordCount 记录集的总记录数
RsPageCount 记录集的总页数
<%
Dim ConnConnStr
Set Conn = ServerCreateObject("AdodbConnection")
ConnStr = "Provider=MicrosoftJetOLEDB;Data Source="&ServerMappath("Datemdb")
ConnOpen ConnStr
Set Rs = ServerCreateObject("AdodbRecordset")
RsOpen SqlConn
PageSize =
RsPageSize = PageSize 每页显示条
curpage = RequestQueryString("Page") 得到当前页数
If curpage = "" Or IsNumeric(curpage) Or (curpageRspagecount) > Then
如果curpage等于空 或者 不是数值类型 或者 curpage大于总数
curpage =
那么curpage等于
End If
Rsabsolutepage = curpage 设置当前记录集页面
i =
If Not RsEof Then 如果不在记录集的未端说明有记录
Do While Not RsEof and i < PageSize 如果已经是数据集的最后一条记录 或者 i已经大于 RsPageSize 就退出
ResponseWrite Rs("字段名")
i = i + 每循环一次 i +
RsMoveNext 指针向下移动
Loop
End If
%>
<%if curpage= then%>
首页
<%else%>
<a href="?page=">首页</a>
<%end if%>
<%if curpage= then%>
上一页
<%else%>
<a href="?page=<%=curpage%>">上一页</a>
<%end if%>
<%if rspagecount<curpage+ then%>
下一页
<%else%>
<a href="?page=<%=curpage+%>">下一页</a>
<%end if%>
<%if rspagecount<curpage+ then%>
尾页
<%else%>
<a href="?page=<%=rspagecount%>">尾页</a>
<%end if%>
说明 curpage 是上面用ReqeustQuerystring得到的当前页
首页
这个使用当前页是否为第一页时判别如果当前为第一页(也就是首页)那么显示首页两字没有链接否则提供直接跳转到首页的链接
上一页
当前为第一页时链接失效反过来链接到当前面的上一页这里使用<%=curpage%>就是用当前的页数减去得到上一页
下一页
这里需要使用rspagecount这个属性来比较假如总页数小于当前页数加的值那表明这就是第后一页链接将失效否则链接到下一页
尾页
和下一页的功能一样判定出是最后页时链接失效否则将当前页指定为rspagecount(总页数)
<%
RsClose //注销对象
Set Rs = Nothing //释放资源
%>
RsAddnew 这是新增一条记录 打开的数据集必须为
Set Rs = ServerCreateObject("AdodbRecordset")
Sql = "Select * From Tealename"
RsOpen SqlConn
RsAddnew() 添加记录到记录集未端
Rs("字段名") = 值
Rs("字段名") = 值
Rs("字段名") = 值
RsUpdate() 将修改更新到数据库内
RsClose
Set Rs = Nothing
%>
RsUpdate 更新数据
Set Rs = ServerCreateObject("AdodbRecordset")
Sql = "Select * From Tealename Where id = " 修改id为的数据
RsOpen SqlConn
Rs("欲更新的字段名") = 更新后的值
RsUpdate() 将修改更新到数据库内
RsClose
Set Rs = Nothing
RsDelete 删除
Set Rs = ServerCreateObject("AdodbRecordset")
Sql = "Select * From Tealename Where id = " 删除id为的数据
RsOpen SqlConn
RsDelete() 删除当前记录但指针不会向下移动所有如果要删除多条数据的时候 要用到循环
RsClose
Set Rs = Nothing