制作有管理功能的ASP留言板

发布时间:2008-08-04 20:24:14 阅读次数:

 今天我们来写一个有管理功能的留言板程序。所谓的管理功能,其实就是每条留言前有一个选择框,点中要删除的留言,或者点“删除所有留言”,就完成了批量删除。通过这一实例,我们可以初步了解ASP中对数据库的基本操作。
        
        一、建立数据库(ACCESS2000中文版)

      myid   文本型  20字节  这是发言的唯一标志
      myname  文本型  10字节  这是保存留言人姓名的
      nowtime  日期/时间型  这里记录了留言时间
      mytitle  文本型  30字节  这是留言的题目
      mybody  备注  留言内容
        
        其中的myid字段是关键,它是删除的唯一标志。
        
        二、管理程序

        manage.asp代码
        '先定义变量
        dim listrs,conn,cmd
        '可根据实际留言数量修改i的循环次数
        for i=1 to 100
        if request("delit"&i)<>empty then
        '上面这条语句为关键部分,检查第i条留言是否被选中,若被选中,则执行下面的删除操作
        Set conn = Server.CreateObject("ADODB.Connection")
        sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
      Source="&Server.MapPath("guestbook.mdb")&";"
        'mappath函数要用一个参数guestbook.mdb,表示要连接的数据库,注意路径问题
        conn.Open sConnection
        '再连接数据表
        set cmd=Server.Createobject("ADODB.Command")
        set cmd.activeconnection=conn
        cmd.commandtext="delete from guest where
      myid='"&request("delit"&i)&"'"
        '上面的guest是数据表的表名,myid是字段名
        cmd.execute
        set conn=Nothing
        set cmd=Nothing
        '执行SQL指令及释放对象
        end if
        next
        '输出表单,注意action属性指向manage.asp
        response.write ""
        '连接数据库
        set conn=Server.CreateObject("ADODB.Connection")
        set listrs=server.createobject("ADODB.Recordset")
        sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
      Source="&Server.MapPath("guestbook.mdb")&";"
        conn.Open sConnection
        listrs.open "select * from guest",conn,2,2
        '上面打开了数据库的guest表
        i=1
        '变量i开始记数
        while not listrs.eof
        response.write "<input type='checkbox' name='delit"&i&"'
      value='"&listrs("myid")&"'>来自:"&listrs("myname")&"----"&listrs("mytitle")&"时间:"&listrs("nowtime")&"<br>"&listrs("mybody")&"<p>"
        i=i+1
        '上面两步是关键处,输出每条留言的同时,输出一个checkbox复选框,此框功能是选中与不选中将返回不同值
        listrs.movenext
        wend
        set listrs=Nothing
        '输出提交按钮和表单结束标志
        response.write "<input type='submit' value='删除选中/刷新'></form>"

        三、代码分析
        
        代码不太好理解,且听我说来:
        
        1.程序首次执行时,if request("delit"&i)<>empty
      then总是返回假值,因为复选框未被选中,接着输出所有的留言。
        
        2.在选中了要删除的留言后,按下“删除按钮”,重新执行。

        3.删除全部选中的留言后,再输出留言板。