首页 新生命讲座 ASP学习 Net编程 我的垃圾工具 我的宝贝 系统编程
编译原理 其它文章
 -> 首页 -> 新生命讲座

<%
For i = 0 to rs.fields.count-1
%>

<% 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
%>

<%
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/
大家可以从这里看到效果
下面讲解


添加表单的Action这里,没有指定目标文件,asp将使用默认的,就是本asp文件作为目标

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这时才真正的把数据写入数据库

下面讲修改表单


<%
For i = 0 to rs.fields.count-1
%>

<%
next
%>


每一行后面加上

就是点击对应行后面的修改连接后,向本asp提交名为id,值为对应行id值的参数,然后后面检查发现有这个id就是用于修改,于是把这行数据显示到表单中

<%
if request("id")<>"" then
rs.filter="id="&request("id")
%>
">

姓名:
" />


密码:
" />


性别:
" />


年龄:
" />






<%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


ASP初级三——ASP实例讲解
作者:大石头   来源:原创   发布时间:2006-12-1 13:44:49   共有837位读者阅读过此文


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
%>

<% next %>

<% while not rs.eof %>

<% For i = 0 to rs.fields.count-1 %>

<% next %>

<% rs.movenext wend %>
<%=rs(i).name%> 
<%=rs(i)%> 

<% 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为真,就说明没有数据,书上搞得挺复杂的

<%=rs(i).name%> 

<%=rs(i)%> 
">修改
<%=rs(i)%> ">修改
">修改 ">删除
评论
winter 2008-4-10 18:09:15
挺不错

winter 2008-4-10 18:08:55
挺不错的

xx 2008-1-19 23:52:14
ding

jack 2007-12-15 11:31:51
不把他们发在根目录下,修改时候就出现错误了。

jack 2007-12-15 11:29:34
我要是不放在根目录下,那个数据修改就出现错误了。

小石头 2007-9-26 0:04:10
.......................

good 2007-6-14 19:36:29
有没有dotnet的入门啊

有名 2006-10-10 1:12:30
!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!ok!!

无名 2006-10-3 1:11:10
不懂

情船★月牙 2006-9-27 15:04:12
看了!谢谢!

发表评论
网名:
评论:
    
新生命 CMS1.0 Build0920 版权所有 All Copyrights @2006 桂ICP备06011573号
站长:大石头 信箱:gxuhy@21cn.com QQ:99363590