2005年5月1号--ASP第三讲--ASP实例讲解(nnhy原创)
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文件都包含这个文件 如:
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
合起来就是:
<%
dim conn,connstr,dbname,db
Set Conn=Server.CreateObject("ADODB.Connection")
DbName = "3.mdb"
Db=Server.MapPath(DbName)
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Db
Conn.open ConnStr
function CloseConn()
conn.close
set conn=nothing
end function
%>
4.index.asp
下面开始讲index.asp,这是在设计时,编写代码前所应该有的,要清楚我们需要什么功能 index.asp
将实现 添删改查 四个功能
我们把他们分别写成过程,同放在index.asp文件里面, 然后在index.asp前面加个Select 来转向
整个程序的框架:
<%
Select Case Request("Act")
Case "Add"
Add()
Main()
Case "Edit"
Edit()
Main()
Case "Del"
Del()
Main()
Case else
Main()
End Select
Sub Main()
End Sub
Sub Add()
End Sub
Sub Edit()
End Sub
Sub Del()
End Sub
%>
下面开始一个个加代码,做界面
先做 Main 过程的
Main过程:
<%
Sub Main()
Dim i Sql = "Select * From NL_User Order By id Desc"
Rs.Open Sql, Conn, 1, 1
if not rs.eof then
%>
<%
For i = 0 to rs.fields.count-1
%>
<%=rs(i).name%> |
<% next %>
<% while not rs.eof %>
<% For i = 0 to rs.fields.count-1 %>
<%=rs(i)%> |
<% next %>
<% rs.movenext wend %>
<% else
response.write "NL_User没有数据"
end if
End Sub%>
Rs.Open Sql, Conn, 1, 1 首先我使用了Conn.asp中建立的Rs记录集对象,在这里通过一条查询语句Sql 打开一个记录集,返回NL_User表中所有数据,安id降序排序
<%
if not rs.eof then
else
response.write "NL_User没有数据"
end if%>
然后判断记录集是否为空,也就是说,数据库是否有符合条件的数据
rs.eof的意思就是判断当前指针是否在最后一条记录之后,没有数据就是在最后一条记录之后嘛
简单一点理解rs.eof为真,就说明没有数据,书上搞得挺复杂的
<%
For i = 0 to rs.fields.count-1
%>
<%=rs(i).name%> |
<% next %>
rs.fields.count就是取得该记录集的列的个数
rs(i).name可以取得第i列的列名,要记住的是,i要从0开始,到rs.fields.count-1止
<%
while not rs.eof
%>
<%
For i = 0 to rs.fields.count-1
%>
<%=rs(i)%> |
<%
next
%>
<%
rs.movenext wend
%>
然后就开始进入数据循环
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/
大家可以从这里看到效果
下面讲解
<%end if%>
这里提交了一个Act=Edit告诉asp下一步是执行Edit过程
大家看看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
(完)
~源码下载
3_20060811135107.rar