ASP教程:6大对象和数据库操作简单学

网络整理 - 09-06

ASP学习步骤:
1、5个对象 Request、Response、Session、Server、Applictaion 
2、两个数据库组件 Adodb.Recordset Adodb.Connection
3、Request.From("表单名称") 得到From表单数据
4、Request.QueryString("Url参数") 得到Url参数
5、index.asp?act=save 
6、Request.QueryString("act")

一、request
Request.Cookies("Cookie") 得到Cookies  Cookies  一般用于存储用户信息 用于验证 一般用于用户验证之类的 Session也有同样的类型 区别是Session是存在服务器上 Cookies是存在用户硬盘上 一般可以省略点方法 直接用Request("参数名") 他会依次用From QueryString Cookies去取值  Request 差不多就这些了

二、Response
Response.Write 向浏览器输出
Response.Redirect 重转向
Response.End 停止向浏览器输出
Response.Cookies 向客户端写Cookies
Response.Cookies("CookieName") = "test"
Responsp.Cookies("CookieName").Domain="china228.com" 这样写的话 在所有的China228.com的域名下用Request.Cookies("CookieName")都能得到

三、Session
Session("SessionName") = "" 把信息存储到Session里面
If Session("SessionName") <> "" Then 判断Session是否存在 一般用于验证 Session("SessionName") = "" 清空Session
Session.Abandon 清空所有Session
Session.TimeOut = 100 设置Session过期时间 单位为秒
Session是存在服务器上 Cookies是存在用户硬盘上 Session重启了进程池就没有了 Cookies我们就不能控制了 除非写个程序 强制清空

四、Server 
Server.Mappath 把虚拟路径转为实际路径,如果你的程序在C盘 那么你用path = Server.Mappath("/")  那么和path = "c:\" 是一样的 基于根目录
Server.CreateObject 这个注册组件的  比较常用 Server.CreateObject("Adodb.RecordSet") 注册一个数据库组件

五 Applictaion  是一个全局对象 他和Session是一样的 区别在于 Session是存储单个的用户信息 Application是存储全局信息
Application("Site") = "" 只要在该站点下的所有文件都可以调用这个Application  二级域名不可以调用这个Application,而要用Cookies 设置他的可用域名
=======================================================
六、Adodb.Connection 连接数据库 先注册一个Conn对象 Set Conn = Server.CreateObject("Adodb.Connection")  //用Server对象的CreateObject方法  然后再用Connection的open方法连接数据库 Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Date.mdb")       Server.Mappath("Date.mdb")即当前目录下面的Date.Mdb  一般我们把这个放在Conn.asp里面
<%
Dim Conn,ConnStr
Set Conn = Server.CreateObject("Adodb.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Date.mdb")
Conn.Open ConnStr
%>
Dim是定义一个变量,asp是弱类型语言 不用定义也可以的,不像C# Java之类的要先定义才能使用
Execute 方法   Conn.Execute(Sql) 执行一条SQL语句  Conn.Execute("Insert Into Tablename(1,2,)Values(1,2)")
Conn.Close 关闭对象  insert 插入一条数据 update修改数据 delete删除 select 查询


七、Adodb.Recordset 返回一个记录集 先也是注册对象 Set Rs = Server.CreateObject("Adodb.Recordset") 这个rs是可以自己定义的 不一定一定要用rs 或者conn    因为这些是Com组件(也就是用deiphl C++写的dll,一些asp本身不能实现的功能 ) 不是asp的内置对象 ,所以要注册对象   

然后也是用Open方法打开记录集 Rs.Open "Select * From TableName",Conn,1,3   Rs.Open Sql语句,Conn对象,1,3 (1,3参数一会讲)Sql语句 一般是一条查询语句  Conn对象就是刚才上面Connection打开的数据库对象

1 打开数据库的游标类型 
3 这个参数这里 如果改为1的话 就不能对库进行操作,不能更新和删除(不能使用Rs.Addnew,Rs.Update,Rs.Delete)  改为2 以独占的形式打开(当有一个用户在修改库的时候,就会锁定库,保持数据的一致性)
3 可以对库进去任何操作,包括删除 修改 更新 添加
这里一般我会用两种 在列表页的时候 因为不用操作库,只读查询就行了 Rs.Open Sql,Conn,1,1   在添加修改数据的时候 用Rs.Open Sql,Conn,1,3   Rs.Bof  是否为第一条数据 是 返回 True 反之 返回False  Rs.Fof 是否为最后  一条数据 是 返回 True 反之 返回False 那就可以用这个来判断数据库里有没有记录  if rs.eof and rs.bof then 就是说当前游标 不在第一条也不在最后一条 就说明没有记录  if rs.eof then 这样说明有记录 那么我们就用个循环把数据输出  Rs和Conn一样理解,是变量

Set Rs = Server.CreateObject("Adodb.Recordset")
Rs.Open Sql,Conn,1,1
If Not Rs.Eof Then 如果不在记录集的未端,说明有记录
    Do While Not Rs.Eof  直到该记录集的最后 跳出循环
        Response.Write Rs("字段名")