论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp教程
Tag:入门,文摘,实例,技巧,iis,表单,对象,上传,数据库,记录集,session,cookies,存储过程,注入,分页,安全,优化,xmlhttp,fso,jmail,application,防盗链,stream,组件,md5,乱码,缓存,加密,验证码,算法,ubb,正则表达式,水印,,日志,压缩,url重写,控件,函数,破解,触发器,socket,ADO,初学,聊天室,留言本,视频教程

asp开发中的面向对象化

文章类别:Asp | 发表日期:2010-7-5 9:37:11

      开发网站其实就是对数据库中数据的操作,所以我们可以把数据看作一个总的对象,每一个数据表都是一个对象,加入有数据表Topic的话,我们可以这样来做:

      (以下部分只是一个思路,里面的许多东西都在另外几个类中,如cms,data之类的,大家看看思路就行,不明白的可以问我)

      topic表的字段假设为 ID,Title,Content,Hits,AddTime
代码:
<%
'==================== 数据类: Topic_Class  注释开始  ==========================
'== Important    :对数据表 Topic 进行相关操作
'== Written by   :Hankx Chen
'== Version      : 1.3
'== Created Date :2007-2-6 17:04:40
'==================== 数据类: Topic_Class  注释结束  ==========================
Class Topic_Class
    '以下是系统数据字段
    Public ID,Title,Content,Hits,AddTime
    '以下是自定义的公共属性
    Public Template
    '初始化类
    Private Sub Class_Initialize
       AddTime=Now()
    End Sub
    '注销类
    Private Sub Class_Terminate
    End Sub
    'Read方法用于读取具体的数据内容
    Public Sub Read()
      on error resume next
      cms.errorcode=0
      cms.data.sql="Select Top 1 * From [Topic] where ID="&ID
      Set cms.data.rs=cms.data.execute(cms.data.sql)
      If Not cms.data.rs.eof Then
          ID=cms.data.rs("ID")
          Title=cms.data.rs("Title")
          Content=cms.data.rs("Content")
          Hits=cms.data.rs("Hits")
          AddTime=cms.data.rs("AddTime")
      Else
         cms.errorcode=10000
         cms.errortext="ReadDataError: 未能在数据表 [Topic] 找到 ID 为 "&ID&" 的数据"
      End If
      cms.data.rs.close
      Set cms.data.rs=nothing
      If err Then
         cms.errorcode=10010
         cms.errortext="ReadDataError: 从数据表 [Topic] 读取 ID 为  的数据时出现错误:"&Err.Description
      End IF
    End Sub
    'Save方法用于保存添加的数据内容
    Public Sub Save()
      on error resume next
      cms.errorcode=0
      If Not IsObject(cms.data.conn) Then cms.data.open()
        Set cms.data.rs = Server.CreateObject("ADODB.Recordset")
        cms.data.sql="Select Top 1 * From [Topic]"
        cms.data.rs.open cms.data.sql,cms.data.conn,1,3
        cms.data.rs.Addnew
          cms.data.rs("ID")=ID
          cms.data.rs("Title")=Title
          cms.data.rs("Content")=Content
          cms.data.rs("Hits")=Hits
          cms.data.rs("AddTime")=AddTime
      cms.data.rs.update
      cms.data.rs.close
      Set cms.data.rs=nothing
      If err Then
         cms.errorcode=10020
         cms.errortext="SaveDataError: 向数据表 [Topic] 添加数据时出现错误:"&Err.Description
      End IF
    End Sub
    'Update方法用于更新具体的数据内容
    Public Sub Update()
      on error resume next
      cms.errorcode=0
      If Not IsObject(cms.data.conn) Then cms.data.open()
        Set cms.data.rs = Server.CreateObject("ADODB.Recordset")
        cms.data.sql="Select Top 1 * From [Topic] where ID="&ID
        cms.data.rs.open cms.data.sql,cms.data.conn,1,3
        If Not cms.data.rs.Eof Then
          cms.data.rs("ID")=ID
          cms.data.rs("Title")=Title
          cms.data.rs("Content")=Content
          cms.data.rs("Hits")=Hits
          cms.data.rs("AddTime")=AddTime
      cms.data.rs.update
      Else
         cms.errorcode=10000
         cms.errortext="UpdateDataError: 在数据表 [Topic] 中无法找到 ID 为 "&ID&" 的数据"
      End If
      cms.data.rs.close
      Set cms.data.rs=nothing
      If err Then
         cms.errorcode=10030
         cms.errortext="UpdateDataError: 向数据表 [Topic] 更新数据时出现错误:"&Err.Description
      End IF
    End Sub
    'Delete方法用于删除具体的数据内容
    Public Sub Delete()
      on error resume next
      cms.errorcode=0
      If Not IsObject(cms.data.conn) Then cms.data.open()
        Set cms.data.rs = Server.CreateObject("ADODB.Recordset")
        cms.data.sql="Select Top 1 * From [Topic] where ID="&ID
        cms.data.rs.open cms.data.sql,cms.data.conn,1,3
        If Not cms.data.rs.eof Then
           cms.data.rs.delete
           cms.data.rs.update
        Else
           cms.errorcode=10000
           cms.errortext="DeleteDataError: 在数据表 [Topic] 中无法找到 ID 为 "&ID&" 的数据"
        End If
      cms.data.rs.close
      Set cms.data.rs=nothing
      If err Then
         cms.errorcode=10040
         cms.errortext="DeleteDataError: 从数据表 [Topic] 中删除 ID 为 "&ID&" 数据时出现错误:"&Err.Description
      End IF
    End Sub
    'List函数用于返回模版列表
    Public Function List()
    End Function
'Hit用于点击  
Public Sub Hit()
  End Sub
End Class
%>
这样来使用

Dim Topic

Set Topic=New Topic_Class

Topic.id=Request.String("ID")

Topic.Read()

下面显示的时候就可以直接写,比如显示页面可以输出内容

<div class="title"><%=topic.title%></div>


<div class="content"><%=topic.content%></div>

如果是添加就是

Topic.ID=1'新建务必使不重复

topic.title="新的标题"

…………

'可以接收数据

'topic.title=Request.Form("Title")

'可以处理数据等等

Topic.Save

其他的类似就可以了,有多少数据表就有多少数据类,使得开发面向对象化,修改或者扩展起来也更加方便

附上一个简单实例:
代码:
<!--#include file="../Inc/Top.Global.asp"-->
<!--#include file="../Inc/Data.Topic.asp"-->
<%
cms.Page.Title ="页面标题"
cms.Page.CSS  ="页面.css"
cms.Page.JS  ="页面.JS"
cms.Page.OnLoad ="加载过程"
cms.Page.Head()
'声明要使用的页面数据类
Dim Topic
Set Topic=New Topic_Class
'过程选择
Select Case cms.Action
case Lcase("DataAdd")
  call DataAdd()
case Lcase("DataSave")
  call DataSave()
case Lcase("DataEdit")
  call DataEdit()
case Lcase("DataUpdate")
  call DataUpdate()
case Lcase("DataDelete")
  call DataDelete()
case else
  call DataList()
End Select
Set Topic=Nothing
cms.Page.Footer()
'=======================列表过程:[Topic]==========================================
Sub DataList()
cms.Page.BlockTitle="列表"
cms.Page.BlockHead()
%>

<%
cms.Page.BlockFooter()
End Sub
'=======================添加过程:[Topic]==========================================
Sub DataAdd()
cms.Page.BlockTitle="添加"
cms.Page.BlockHead()
%>
<form name="HankxForm" action="?action=DataSave" method="post" target="HiddenIFrame"  onSubmit="return Validator.Validate(this,3)" >
<table class="table" id="HankxFormAdd">
   <tr>
       <td class="tab">ID</td>
       <td class="main"><input name="ID" id="ID" value="" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
       <td class="tab">Title</td>
       <td class="main"><input name="Title" id="Title" value="" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
       <td class="tab">Content</td>
       <td class="main"><textarea name="Content" id="Content" class="text" dataType="Require"  msg="该项不能为空,请填写"></textarea></td>
   </tr>
   <tr>
       <td class="tab">Hits</td>
       <td class="main"><input name="Hits" id="Hits" value="" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
       <td class="tab">AddTime</td>
       <td class="main"><input name="AddTime" id="AddTime" value="" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr class="buttonline">
       <td class="tab"></td>
       <td class="main"><input name="" type="submit" value="保存添加" class="button" /></td>
</tr>
</table>
</form>
<%
cms.Page.BlockFooter()
End Sub
'=======================保存过程:[Topic]==========================================
Sub DataSave()
Topic.ID=cms.myRequest.Form("ID")
Topic.Title=cms.myRequest.Form("Title")
Topic.Content=cms.myRequest.Form("Content")
Topic.Hits=cms.myRequest.Form("Hits")
Topic.AddTime=cms.myRequest.Form("AddTime")
Topic.Save()
If Not cms.ErrorCode=0 Then
  Response.Write "<script language=""javascript"">alert('"&cms.ErrorText&"');</script>"
  Response.End()
Else
  Response.Write "<script language=""javascript"">alert('添加数据成功');parent.location.href='?action=list';</script>"
  Response.End()
End If
End Sub
'=======================修改过程:[Topic]==========================================
Sub DataEdit()
Topic.ID=cms.myRequest.number("ID")
Topic.Read()
cms.Page.BlockTitle="修改"
cms.Page.BlockHead()
%>
<form name="HankxForm" action="?action=DataUpdate&ID=<%=Topic.ID%>" method="post" target="HiddenIFrame"  onSubmit="return Validator.Validate(this,3)" >
<table class="table" id="HankxFormEdit">
   <tr>
      <td class="tab">ID</td>
      <td class="main"><input name="ID" type="text" id="ID" value="<%=Topic.ID%>" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
      <td class="tab">Title</td>
      <td class="main"><input name="Title" type="text" id="Title" value="<%=Topic.Title%>" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
      <td class="tab">Content</td>
      <td class="main"><textarea name="Content" id="Content" class="text" dataType="Require"  msg="该项不能为空,请填写"><%=Topic.Content%></textarea></td>
   </tr>
   <tr>
      <td class="tab">Hits</td>
      <td class="main"><input name="Hits" type="text" id="Hits" value="<%=Topic.Hits%>" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr>
      <td class="tab">AddTime</td>
      <td class="main"><input name="AddTime" type="text" id="AddTime" value="<%=Topic.AddTime%>" class="text" dataType="Require"  msg="该项不能为空,请填写"/></td>
   </tr>
   <tr class="buttonline">
       <td class="tab"></td>
       <td class="main"><input name="" type="submit" value="保存修改" class="button" /></td>
</tr>
</table>
</form>
<%
cms.Page.BlockFooter()
End Sub
'=======================更新过程:[Topic]==========================================
Sub DataUpdate()
Topic.ID=cms.myRequest.number("ID")
Topic.Read()

Topic.ID=cms.myRequest.Form("ID")
Topic.Title=cms.myRequest.Form("Title")
Topic.Content=cms.myRequest.Form("Content")
Topic.Hits=cms.myRequest.Form("Hits")
Topic.AddTime=cms.myRequest.Form("AddTime")
Topic.Update()
If Not cms.ErrorCode=0 Then
  Response.Write "<script language=""javascript"">alert('"&cms.ErrorText&"');</script>"
  Response.End()
Else
  Response.Write "<script language=""javascript"">alert('更新数据成功');parent.location.href='?action=list';</script>"
  Response.End()
End If
End Sub
'=======================删除过程:[Topic]==========================================
Sub DataDelete()
Topic.ID=cms.myRequest.number("ID")
Topic.Read()
'判断过程
Topic.Delete()
If Not cms.ErrorCode=0 Then
  Response.Write "<script language=""javascript"">alert('"&cms.ErrorText&"');</script>"
  Response.End()
Else
  Response.Write "<script language=""javascript"">alert('删除数据成功');parent.location.href='?action=list';</script>"
  Response.End()
End If
End Sub
%>
<!--#include file="../Inc/bottom.Global.asp"-->
上一篇:{教程}JSP上传 人气:2578
下一篇:存储过程及ASP调用存储过程实现分页 人气:3360
视频教程列表
文章教程搜索
 
Asp推荐教程
Asp热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058