1.总体说明
四个文件
3.mdb
Conn.asp
index.asp
新生命页面开发专用v1.1.exe 后面这个可以到这里下 http://nnhy.org/NewLife/NewLifeWebServer/index.htm
两个asp文件直接复制我的代码
index.asp就是整个系统的代码
很多ASP页面都需要连接数据库,所以,我们把连接数据库用的代码都写到一个ASP文件(Conn.asp)里面去
然后需要连接数据库的ASP文件都包含这个文件 如:处理 SSI 文件时出错
conn.asp文件就是依照上次讲课时,数据库操作,所有的代码
2.建立数据库 3.mdb
我现在先建立数据库3.mdb,并在里面建立一个数据表:
ID 自动编号
UserName 字符串
PassWord 字符串
Sex 字符串
Age 整型
这里输入一行数据
UserName PassWord Sex Age
nnhy nnhy 男 22
到这里 3.mdb 就算建好了
3.Conn.asp
下面我们来看看Conn.asp的内容
Set Conn=Server.CreateObject("ADODB.Connection")
然后建立这个对象,都大同小异的啦,数据库连接对象
DbName = "3.mdb"
Db=Server.MapPath(DbName)
好,数据库就是3.mdb,这里使用Server.MapPath得到它的物理路径, 也就是盘符开头的路径, 比如E: nhy\3.mdb
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Db
这就是连接字符串啦,前面是Access数据驱动oledb, 后面是数据库文件(这里是3.mdb)的物理路径
Conn.open ConnStr
打开数据库连接,这里开始连接数据库, 下面准备一个关闭数据库的函数
function CloseConn()
conn.close
set conn=nothing
end function
合起来就是:
4.index.asp
下面开始讲index.asp,这是在设计时,编写代码前所应该有的,要清楚我们需要什么功能 index.asp
将实现 添删改查 四个功能
我们把他们分别写成过程,同放在index.asp文件里面, 然后在index.asp前面加个Select 来转向
整个程序的框架:
处理 SSI 文件时出错
下面开始一个个加代码,做界面
先做 Main 过程的
Main过程:
Rs.Open Sql, Conn, 1, 1 首先我使用了Conn.asp中建立的Rs记录集对象,在这里通过一条查询语句Sql 打开一个记录集,返回NL_User表中所有数据,安id降序排序
然后判断记录集是否为空,也就是说,数据库是否有符合条件的数据
rs.eof的意思就是判断当前指针是否在最后一条记录之后,没有数据就是在最后一条记录之后嘛
简单一点理解rs.eof为真,就说明没有数据,书上搞得挺复杂的
rs.fields.count就是取得该记录集的列的个数
rs(i).name可以取得第i列的列名,要记住的是,i要从0开始,到rs.fields.count-1止
然后就开始进入数据循环
while not rs.eof 当记录集指针没有到最后一条之后,就执行 这里也用了一个和上面一样的for,只是,它用rs(i)而不用rs(i).name,rs(i)就是取得指针所在行第i列的数据
那么
rs(0).name就等于"id"
rs(1).name就等于"UserName"
rs(2).name就等于"PassWord"
rs(3).name就等于"Sex"
rs(4).name就等于"Age"
指针一开始是在记录集的第一行的
一个for,把第一行数据显示完以后
来一个rs.movenext把指针移到下一行
while not rs.eof 判断一下现在指针是不是到了最后一行之后了,如果到了最后一行之后,就是没数据了,不用循环了
(未完,待续)
继续ASP实例讲座,我们前天讲了如何显示一个数据表的数据
大家可以从这里看到昨天的程序的效果
http://nnhy.org/aspstudy/3/
下面开始建立一个表单,用来添加数据和修改数据,大家请稍后
姓名:
密码:
性别:
年龄:
表单做好了,我们对上面显示数据的表格稍作修改,在每条信息的后面加上修改的连接,点击连接后,下面的表单中显示对应的数据供修改
不带文件名他就是提交给当前文件处理
Sub Add()
sql = "select * from NL_User"
rs.open sql, conn, 1, 3
rs.addnew
rs("UserName") = request("txtUserName")
rs("PassWord") = request("txtPassWord")
rs("Sex") = request("txtSex")
rs("Age") = CInt(request("txtAge"))
rs.update
rs.close
End Sub
http://nnhy.org/aspstudy/3/
大家可以从这里看到效果
下面讲解
这里提交了一个Act=Edit告诉asp下一步是执行Edit过程
Act=Add就是提交一个名为Act,值为Add的参数
和我前面使用的下面这个对应
Select Case Request("Act")
Case "Add"
Add()
Main()
Case "Edit"
也就是说,如果Act是Add,则调用Add方法后再调用Main
Sub Add()
sql = "select * from NL_User"
rs.open sql, conn, 1, 3
rs.addnew
rs("UserName") = request("txtUserName")
rs("PassWord") = request("txtPassWord")
rs("Sex") = request("txtSex")
rs("Age") = CInt(request("txtAge"))
rs.update
rs.close
End Sub
这个过程里面,首先打开一个可写记录集,13代表可写
其次,使用addnew方法添加一条新记录
接着用request接收数据,再把数据写入到rs记录集对应的列中
最后不要忘了rs.update这时才真正的把数据写入数据库
下面讲修改表单
每一行后面加上
就是点击对应行后面的修改连接后,向本asp提交名为id,值为对应行id值的参数,然后后面检查发现有这个id就是用于修改,于是把这行数据显示到表单中
姓名:
" />
密码:
" />
性别:
" />
年龄:
" />
大家看看Edit过程:
Sub Edit()
sql = "select * from NL_User where id=" & request("id")
rs.open sql, conn, 1, 3
if rs.eof then exit sub
rs("UserName") = request("txtUserName")
rs("PassWord") = request("txtPassWord")
rs("Sex") = request("txtSex")
rs("Age") = CInt(request("txtAge"))
rs.update
rs.close
End Sub
可以看到Edit过程和Add过程的区别,就是在查询SQL的时候,多了一个where条件,只获取一条记录,因为我们只需要修改这一条记录嘛
Edit过程还比Add过程少了一个rs.AddNew,千万不要加哦,要不,修改数据就会变成添加数据了
下面就剩下最后一项删除功能了
同样原理,我们在每一行后面加上一个删除的连接
Act表明,下一步执行Del过程
接着写Del过程
Sub Del()
conn.execute "delete from NL_User where id=" & request("id")
End Sub
(完)
~源码下载 dashitoucode.rar
