ASP 类 Class入门 推荐

  Class 声明

  声明一个类的名字,就是定义一些变量,属性,方法来组成一个类。我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的这个新的东东。我们来看看下面的这个代码吧!(window2000+IIS5.0通过测试)

  类的定义1

  yyh.asp

  <%

  ''声明一个名为yh的类

  Class yh

  Private yh

  ''类的初始化

  Private Sub Class_Initialize

  yh="天涯风云"

  End Sub

  ''定义一个函数

  Public Function yyh(a,b)

  yyh=a+b

  End Function

  ''定义一个方法

  Public sub yyh1(stat)

  Response.write stat

  End Sub

  End Class

  Set myyyh=New yh ''定义一个名为yh的myyyh对象实例

  response.write myyyh.yyh(6,6)&"<br>"

  mystring="这是天涯风云方法"

  myyyh.yyh1 mystring

  %>

  这是很简单的一个程序,我们在其中声明了一个名为yh的类,建立了一个yyh函数,一个yyh1方法,这个程序很简单相信大家能看懂,它的显示如下:

  12

  这是天涯风云的方法

  可以把我们常用到的程序写成一个类,到时候就用<!--#include file="yyh.asp"-->来包含进来就行了,这给我们开发程序又提供了新的空间.

  类的定义2

  这里采用类的属性定义方法。

  <%

  ''声明一个名为myclass的类

  Class myclass

  Private a1,b1

  ''类的初始化

  Private Sub Class_Initialize

  a1=0

  b1=0

  End Sub

  ''定义一个属性

  Public Property Let width(ax)

  a1=ax

  End Property

  ''定义另个一个属性

  Public Property Let height(bx)

  b1=bx

  End Property

  ''计算两个属性值的结果,得到一个新的属性

  Public Property Get area

  area=b1*a1

  End Property

  End Class

  Set tianya=New myclass ''定义一个名为tianya的对象myclass的实例

  tianya.width=50

  tianya.height=60

  response.write tianya.area

  %>

  一个完全数据库管理的asp类模型

  '天涯风云原创

  先建一个数据库user,有一个表名为user,

  表里有三个字段,分别为id,name,content

  先写数据库连接文件:

  'conn.asp

  <%

  StrSQL="DBQ="+server.mappath("user.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"

  Set conn=server.createobject("ADODB.CONNECTION")

  Conn.open StrSQL

  %>

  构造userclass类:

  ,mycls.asp

  <%

  Class userclass

  Private id,name,content

  Private Sub Class_Initialize()     '类的初始化,连接数据库

  username=""

  usercontent=""

  end sub

  '以下设置类的几个属性

  Public Property Let userid(vNewvalue)

  id=Cint(vNewvalue)

  End Property

  Public Property Get userid

  userid=id

  End Property

  Public Property Let username(vNewvalue)

  name=vNewvalue

  End Property

  Public Property Get username

  username=name

  End Property

  Public Property Let usercontent(vNewvalue)

  content=vNewvalue

  End Property

  Public Property Get usercontent

  usercontent=content

  End Property

  '添加记录

  Public sub adduser()

  if username <> "" and usercontent <> "" then

  Set rs = Server.Createobject("adodb.Recordset")

  SQL="Select * From user"

  rs.Open SQL,Conn,1,3

  rs.AddNew

  rs("name") = username

  rs("Content") = usercontent

  rs.Update

  rs.Close

  Set rs = Nothing

  Response.write "添加记录成功!"

  end if

  end sub

  '显示一条记录

  Public sub showuser()

  set rs=server.createobject("adodb.recordset")

  sql="select * from user where id=" & userid

  rs.open sql,conn,1,3

  username=rs("name")

  usercontent=rs("content")

  rs.close

  end sub

  '编辑记录

  Public sub edit()

  set rs=server.createobject("adodb.recordset")

  sql="select * from user where id=" & userid

  rs.open sql,conn,1,1

  username=rs("name")

  usercontent=rs("content")

  rs.close

  end sub

  '保存编辑

  Public sub saveedit()

  set rs=server.createobject("adodb.recordset")

  sql="select * from user where id =" & userid

  rs.open sql,conn,1,3

  rs("name")=username

  rs("content")=usercontent

  rs.update

  rs.close

  Response.write "更新记录成功!"

  end sub

  '删除记录

  public sub deluser()

  set rs=server.createobject("adodb.recordset")

  sql="delete from user where id="& userid

  rs.open sql,conn,1,1

  set rs=nothing

  Response.write "删除记录成功!"

  end sub

  '挑战分页显示~~!!

  public sub list(n)

  dim page

  page=request("page")

  PageSize = n

  dim rs,strSQL,news

  strSQL ="SELECT * FROM user ORDER BY id DESC"

  Set rs = Server.CreateObject("ADODB.Recordset")

  rs.open strSQL,Conn,3,3

  rs.PageSize = PageSize

  totalfilm=rs.recordcount

  pgnum=rs.Pagecount

  if page="" or clng(page)<1 then page=1

  if clng(page) > pgnum then page=pgnum

  if pgnum>0 then rs.AbsolutePage=page

  if rs.eof then

  response.write "<font color='#003366' class='3dfont'>没有记录!</font>"

  else

  count=0

  do while not (rs.eof or rs.bof) and count<rs.PageSize

  with response

  .write "<table><tr><td> "

  .write  rs("id")&" "

  .write "<a href=show.asp?id="&rs("id")&">"

  .write rs("name")

  .write "</a>  "

  .write "内容: "&rs("content")

  .write "</td></tr></table>"

  end with

  rs.movenext

  count=count+1

  loop

  end if

  with response

  .write "<table><tr><td> 共<b>"

  .write rs.pagecount

  .write "</b>页"

  for i=1 to rs.pagecount

  .write " <a href=list.asp?page="&i&">"

  .write i

  .write "</a>"

  next

  rs.close

  set rs=nothing

  .write "</td></tr></table>"

  end with

  end sub

  '类退出后,作清理工作

  Private Sub class_terminate()

  If IsObject(Conn) Then Conn.Close:Set Conn = Nothing

  End Sub

  End Class

  %>

  (以上程序在winxpsp2+netbox通过)