ASP简单操作,添加,删除,显示等

虽然ASP有可能被.net和PHP淘汰了,但是有的地方还是很方便的!比如我要做个FLASH动态站,随时更新,就可以用ASP来简单完成了!不一定要配制那么复杂的调试平台,装个IIS,或netbox之类的就好了!
把一些简单的ASP操作记录一下,当自己很久不用了,突然想用时,翻出来看看,也许能想起些什么东西来!


  1.Select 语句:命令数据库引擎从数据库里返回信息,作为一组记录。
  2.Insert INTO 语句:添加一个或多个记录至一个表。
  3.Update 语句:创建更新查询来改变基于特定准则的指定表中的字段值。
  4.Delete 语句:创建一个删除查询把记录从 FROM 子句列出并符合 Where 子句的一个或更多的表中清除。
  5.EXECUTE 语句:用于激活 PROCEDURE(过程)

一、建立数据库:

  用 Microsoft Access 建立一个名为 data.mdb 的空数据库,使用设计器创建一个新表。输入以下几个字段:

  字段名称  数据类型  说明      其它
  ID     自动编号  数据标识    字段大小:长整型 新值:递增 索引:有(无重复)
  username  文本    姓名      缺省值
  usermail  文本    E-mail     缺省值
  view    数字    查看次数    字段大小:长整型 默认值:0 索引:无
  indate   时间日期  加入时间    缺省值

  保存为 data.mdb 文件,为了便于说明,只是做了一个比较简单的库。

二、连接数据库

  方法1:
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")

  方法2:
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data.mdb")

  注意:一个页面中,只要连接一次就可以了,数据库使用完后要及时关闭连接。
  conn.Close
  Set conn = Nothing

三、添加新记录到数据库

  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")

  username = "un"
  usermail = "**@gmail.com"
  indate = Now()

  sql = "insert into data (username,usermail,indata) values(''''''''"&username&"'''''''',''''''''"&usermail&"'''''''',''''''''"&indate&"'''''''')"
  conn.Execute(sql)

  conn.Close
  Set conn = Nothing

  说明:建立数据库连接;通过表单获取姓名、E-mail 字符串,Now()获取当前时间日期;使用 insert into 语句添加新记录;conn.Execute 来执行;最后关闭。

四、选择数据库里的记录

  1.选择所有记录的字段(按记录倒序排序):sql = "select * from data order by ID desc"
  2.选择所有记录的姓名和E-mail字段(不排序):sql = "select username,usermail from data"
  3.选择姓名为“un”的所有记录:sql = "select * from data where username=''''''''"un"''''''''"
  4.选择使用 gmail 信箱的所有记录(按查看次数排序):sql = "select * from data where usermail like ''''''''%"@gmail.com"%'''''''' order by view desc"
  5.选择最新的10个记录:sql = "select top 10 * from data order by ID desc"

  SQL 语句已经知道了,不过在Web应用时,还得创建一个 RecordSet 对象得到记录集,才能把从数据库里取出的值应用在网页上,如果现在将所有的记录显示在网页上就这样:

  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")

  sql = "select * from data"
  Set rs = Server.CreateObject("ADODB.RecordSet")
  rs.Open sql,conn,1,1

  Do While Not rs.Eof
    Response.Write "<p>姓名:"& rs("username") &" E-mail:"& rs("usermail") &" 查看:"& rs("view") &"次 "& rs("indate") &"加入</p>"
    rs.MoveNext
  Loop

  rs.Close
  Set rs = Nothing
  conn.Close
  Set conn = Nothing

  说明:建立数据库连接;创建 rs 得到记录集;循环显示记录,rs.Eof 表示记录末,rs.MoveNext 表示移到下一个记录;最后关闭。

五、修改(更新)数据库记录

  修改记录的E-mail:

  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")

  ID = 1
  usermail = **@gmail.com

  sql = "update data set usermail=''''''''"&usermail&"'''''''' where ID="&CInt(ID)
  conn.Execute(sql)

  conn.Close
  Set conn = Nothing

  说明:建立数据库连接;获取记录ID、新 E-mail 字符串;使用 update 语句修改记录;conn.Execute 来执行;最后关闭。
  如果使记录的查看值加1,则:sql = "update data set view=view+1 where ID="&CInt(ID)

六、删除数据库记录

  删除某一条记录:

  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")

  ID = 1

  sql = "delete from data where ID="&CInt(ID)
  conn.Execute(sql)

  conn.Close
  Set conn = Nothing

  说明:建立数据库连接;获取记录ID;使用 delete 语句删除记录;conn.Execute 来执行;最后关闭。
  删除多条记录为:sql = "delete from data where ID in (ID1,ID2,ID3)"
  删除所有记录为:sql = "delete from data"



--------------------------------------------------------------------------------


VBScript语法简介
VBScript语句是一种基于VB的一种脚本语言,主要用于WEB服务器端的程序开发,我们
这里只介绍一些简单的语句,主要是操作数据库的几种常见的语句
<1>.vbscript的标识
  <%
   语句
   ……
  %>
<2>定义变量dim语句
<%
  dim a,b
  a=10
  b=”ok!”
%>
注意:注意:定义的变量可以是数值型,也可以是字符或者其他类型的
<3>简单的控制流程语句
1. If 条件1 then
     语句1
elseif 条件2 then
     语句2
else
     语句3
endif
2.while 条件
   语句
  wend
3.for count=1 to n step m
  语句1
  exit for
  语句2
next


.ASP数据库简单操作教程
<1>.数据库连接(用来单独编制连接文件conn.asp)
<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bbs\db1\user.mdb")
%>
(用来连接bbs\db1\目录下的user.mdb数据库)
<2>显示数据库记录
  原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录
        如果是从头到尾:用循环并判断指针是否到末      使用: not rs.eof
        如果是从尾到头:用循环并判断指针是否到开始    使用:not rs.bof
        
        <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
        <%
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
         rs.movefirst                    ---->(将指针移到第一条记录)
         while not rs.eof                ---->(判断指针是否到末尾)
         response.write(rs("name"))      ---->(显示数据表message中的name字段)
         rs.movenext                     ---->(将指针移动到下一条记录)
         wend                            ---->(循环结束)
------------------------------------------------------        
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------
        %>
       其中response对象是服务器向客户端浏览器发送的信息
<3>增加数据库记录
增加数据库记录用到rs.addnew,rs.update两个函数
        <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
        <%
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
         rs.addnew                      新增加一条记录
         rs("name")="xx"                将xx的值传给name字段
         rs.update                      刷新数据库
------------------------------------------------------        
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------          
                    
        %>
<4>删除一条记录
  删除数据库记录主要用到rs.delete,rs.update
   <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
        <%
         dim name
         name="xx"
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
-------------------------------------------------------      
         while not rs.eof
          if rs.("name")=name then
           rs.delete
           rs.update             查询数据表中的name字段的值是否等于变量name的值"xx",如果符合就执行删除,
          else                   否则继续查询,直到指针到末尾为止
           rs.movenext
          end if
         wend

------------------------------------------------------        
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------
        %>
<5>关于数据库的查询
  (a) 查询字段为字符型
      <%
      dim user,pass,qq,mail,message
      user=request.Form("user")
      pass=request.Form("pass")
      qq=request.Form("qq")
      mail=request.Form("mail")
      message=request.Form("message")
      if trim(user)&"x"="x" or trim(pass)&"x"="x" then     (检测user值和pass值是否为空,可以检测到空格)
        response.write("注册信息不能为空")
      else
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from user where user=''''"&user&"''''"    (查询user数据表中的user字段其中user字段为字符型)
      rs.open sqlstr,conn,1,3
      if  rs.eof then
        rs.addnew
        rs("user")=user
        rs("pass")=pass
        rs("qq")=qq
        rs("mail")=mail
        rs("message")=message
        rs.update
        rs.close
        conn.close
        set rs=nothing
        set conn=nothing
        response.write("注册成功")
       end if
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("注册重名")
     %>
  (b)查询字段为数字型
     <%
      dim num
      num=request.Form("num")
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from message where id="&num   (查询message数据表中id字段的值是否与num相等,其中id为数字型)
      rs.open sqlstr,conn,1,3
      if not rs.eof then
      rs.delete
      rs.update
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("删除成功")
      end if
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("删除失败")
     %>
<6>几个简单的asp对象的讲解
   response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,或设置cookie值
   request对象:客户端向服务器提出的请求
   session对象:作为一个全局变量,在整个站点都生效
   server对象:提供对服务器上方法和属性的访问                                              
(a) response对象的一般使用方法
    比如:
       <%
        response
.write("hello, welcome to asp!")
       %>
    在客户端浏览器就会看到  hello, welcome to asp! 这一段文字
      <%
response.Redirect("www.sohu.com")
      %>
    如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址
  关于response对象的用法还有很多,大家可以研究研究
  request对象的一般使用方法
比如客户端向服务器提出的请求就是通过request对象来传递的
列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将
      你所填写的信息传递给服务器的
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按
     “提交”传递给request.asp文件处理后再存入服务器数据库
    <form name="form1" method="post" action="request.asp">
      <p>
      <input type="text" name="user">
      </p>
      <p>
      <input type="text" name="pass">
      </p>
      <p>
      <input type="submit" name="Submit" value="提交">
      </p>
</form>
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到
request对象了,下面我们就来分析request.asp的写法
<%
dim name,password    (定义user和password两个变量)
name=request.form(“user”)  (将表单中的user信息传给变量name)
password=request.form(“pass”) (将表单中的pass信息传给变量password)
%>    


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP
评论: 1 | 引用: 0 | 查看次数: 896
  • 1
flyblue3 [2010-05-11 00:47 AM]
  • 1
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭