仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 474|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计手把手教你利用VB来创立ASP组件

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧创立  1、甚么是组件

  组件是包括能够变动的数据情势的代码的工具,是可用代码的封装,这些代码能够用来实行使用程序的一些功效,如从数据库中检索某些信息等功效。如今常常听人提及COM,其使它的意义是组件工具模子(ComponentObjectModel),是由微软开辟的能够在Windows平台上实行的工具模子,COM界说了组件之间的交互才能。为COM编写的组件能够反复利用,其实不依附于编写所用的言语,好比说,一个组件能够用VB,VC++乃至是Java来编写,总之,只需恪守COM标准就能够了。

  2、为何我们要用VB来创立ASP组件

  后面我也说了,编写组件对利用的言语没有甚么限定,因而您就能够利用您所熟习的言语来编写组件。我们说VB是用来编写组件最简单的言语工具,它固然没有VC++和Java得优秀的功能,和高速天真性,可是由于它易学易用,以是也被宽大程序开辟职员是用来编写COM组件。上面我想先容一下怎样利用VB来创立ASP所用的COM组件。

  3、成绩的提出

  某个商务网站,常常要对他们多供应的CD信息举行增添或删除等操纵,因而它们像开辟出一个DNA组件(DistributedinterNetArchitecture散布式Internet布局),从数据库中对CD信息举行操纵。在此,我们想使用VB来完成创立这个组件的历程。

  起首,我们必要晓得CD信息在数据库中,比方SQLSERVER7.0中的存储布局,以下:

CD_ID:为数据库中独一标识这张CD的标识符。

CD_Name:为CD名

CD_Author:为演唱(奏)者

CD_Price:为CD代价

CD_Information:为CD的复杂形貌

  为了复杂起见,我们假定对CD信息数据的处置唯一增添和删除,有乐趣的伴侣想增添这个组件的功效请参看响应的书本,自行完成。

  就像在Java中写JavaBean程序一样,在ASP的组件中,我们也要界说响应的办法来完成必定的功效,本例顶用到了以下办法:

OpenDB:翻开数据库,读进一切的CD信息。

CloseDB:封闭数据库毗连。

Add:向数据库中增加一条新的CD信息

Delete:从数据库中删除一条CD信息。

NextCD:从表中前往以后CD信息,并把指针移向下一条信息

IsEof:判别是不是另有更多的CD信息

  4、利用VB创立组件

  如今让我们入手下手用VisualBasic6.0(固然利用VB5.0也是能够的)创立一个新的ActiveXDLL项目(如图)

  因为我们要操纵数据库,要利用到ADO,因而我们要援用MicrosoftActivexDataObject2.5Library.(以下图)
  如今我们入手下手写组件中的办法

  1、OpenDB办法

  OpenDB办法的思绪是创建与MSSQLSERVER7.0的毗连,这可使用SQLOLEDBProvider来完成。创建毗连后就能够创立一个包括一切CD信息的纪录集。依据以上剖析我们写出以下代码。

OptionExplicit

PrivateConnAsADODB.Connection

PrivateRecordSetCDAsADODB.Recordset

’翻开毗连和了局集

PrivateSubOpenDB()

SetConn=NewADODB.Connection

SetRecordSetCD=NewADODB.Recordset

Conn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"

RecordSetCD.Open"SELECT*FROMCD",Conn

EndSub

  2、CloseDB办法

  因为毗连数据库是相称高贵的,以是在不必要利用数据库时,必定要记着封闭Recordset和Connection工具,CloseDB就是完成这一操纵。

PrivateSubCloseDB()

’封闭了局集RecordSetCD

IfNot(RecordSetCDIsNothing)Then

IfRecordSetCD.State=adStateOpenThen

RecordSetCD.Close

EndIf

SetRecordSetCD=Nothing

EndIf

’封闭毗连Conn

IfNot(ConnIsNothing)Then

Conn.Close

SetConn=Nothing

EndIf

EndSub
  3、Add办法

  Add办法的目标是向数据库中增加一条新的CD信息,因而它翻开的纪录集请求可以更新。这就不克不及像OpenDB中那样仅用Open翻开数据集。具体的代码见上面:

PrivateSubAdd(IdAsString,NameAsString,AuthorAsString,PriceAsCurrency,InformationAsString)

DimNewConnAsNewADODB.Connection

DimNewRecordsetCDAsNewADODB.Recordset

NewConn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"

NewRecordsetCD.Open"SELECT*FROMCD",NewConn,adOpenDynamic,adLockOptimistic

NewRecordsetCD.AddNew

NewRecordsetCD.Fields("CD_ID")=Id

NewRecordsetCD.Fields("CD_Name")=Name

NewRecordsetCD.Fields("CD_Author")=Author

NewRecordsetCD.Fields("CD_Price")=Price

NewRecordsetCD.Fields("CD_Information")=Information

NewRecordsetCD.Update

EndSub

注释:利用NewRecordsetCD.AddNew,

NewRecordsetCD.Fields(“Some_Key”)=Some_Value

NewRecordsetCD.Update来增加一条记录

  4、Delete办法:

  这个办法的目标是为了删除库中的某条CD名和相干的信息。它的完成办法是经由过程查询表中独一的CD_ID来定位CD信息,从而删除该行记录

PrivateSubDelete(IdAsString)

DimNewConnAsNewADODB.Connection

DimRecordsetDeleteAsNewADODB.Recordset

NewConn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"从表中删除一条信息

NewConn.Execute"DELETEFROMCDWHERECD_ID="&Id&"",adCmdText+adExecuteNoRecords

EndSub


  5、ASP程序的编写

  (1)ListCdInformation.asp程序

  这个程序完成的是检索数据库,把检索的了局显现为一张表,利用了方才我们界说的组件。它翻开表,然后枚举每张CD的信息。

<%

DimCd_Info

SetCd_Info=Server.CreateObject("CD.CD_Handle")

%>

<HTML>

<HEAD>

<METAhttp-equiv="Content-Type"content="text/html;charset=gb2312">

<TITLE>CD信息列表</TITLE>

</HEAD>

<BODY>

<B><PALIGN="center">CD信息列表</P></B>

<TABLEBORDER="2"CELLSPACING="1">

<TR>

<TD><PALIGN="center">CD编号</TD>

<TD><PALIGN="center">CD名</TD>

<TD><PALIGN="center">作者</TD>

<TD><PALIGN="center">代价</TD>

<TD><PALIGN="center">CD简介</TD>

</TR>

<TR></TR>

<%DIMID

DimName

DimAuthor

DimPrice

DimInformation

初始化CD列表

Cd_Info.OpenDB

WhileCd_Info.IsEof=False

Cd_Info.NextCDID,Name,Author,Price,Information

%>

<TR>

<TD><%=ID%></TD>

<TD><%=Name%></TD>

<TD><%=Author%></TD>

<TD><%=Price%></TD>

<TD><%=Information%></TD>

<TD><FormName="Delete"METHOD=POSTACTION="DeleteCdInformation.asp?id=<%=ID%>">

<INPUTTYPE"SUBMIT"VALUES="删除此条"NAME="DELETE2">

</FORM>

</TD>

</TR>

<%

Wend

%>

</TABEL>

<FORMNAME="ADD"METHOD="POST"ACTION="AddCDInformation.asp">

<inputtype="submit"value="增加一条CD信息"Name="ADD2">

</FORM>

</body>

</html>
(2)DeleteCdInformation.asp程序

  点击每条信息后的删除键就会从表中把该条信息删除,它也挪用了我们方才注册的组件。限于篇幅,我只把最主要的几行代码写出:

<%

DimCD_Info

SetCD_Info=Server.CreateObject(“CD.CD_Handle”)

CD_Info.DeleteRequest.QueryString(“ID”)

%>

(3)AddCDInformation.html

  本程序是一个纯HTML文本,只呈现一个表单,让你填写新的CD信息,然后再发给InsertintoDB.asp来到场数据库。

<html>

<head>

<metahttp-equiv="Content-Language"content="zh-cn">

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

<title>请您增加一条CD信息</title>

</head>

<body>

<formmethod="POST"action="InsertintoDB.asp">

<p> </p>

<p>请您增加一条CD信息</p>

<tableborder="1"cellspacing="1"width="34%"height="109">

<tr>

<tdwidth="24%"height="16">

<palign="center">CD号</td>

<tdwidth="76%"height="16"><inputtype="text"name="ID"size="24"></td>

</tr>

<tr>

<tdwidth="24%"height="16">

<palign="center">CD名</td>

<tdwidth="76%"height="16"><inputtype="text"name="Name"size="24"></td>

</tr>

<tr>

<tdwidth="24%"height="16">

<palign="center">作者</td>

<tdwidth="76%"height="16"><inputtype="text"name="Author"size="24"></td>

</tr>

<tr>

<tdwidth="24%"height="16">

<palign="center">代价</td>

<tdwidth="76%"height="16"><inputtype="text"name="Price"size="24"></td>

</tr>

<tr>

<tdwidth="24%"height="95">

<palign="center">简介</p>

<p> </td>

<tdwidth="76%"height="95"valign="top"><textarearows="4"name="Information"cols="22"></textarea></td>

</tr>

<tr>

<tdwidth="100%"height="15"colspan="2">

<palign="center"><inputtype="submit"value="提交"name="B1"><inputtype="reset"value="作废"name="B2"></td>

</tr>

</table>

</form>

<p></p>

</body>

</html>

(4)InsertIntoDB.asp程序,用到了组件中Add办法

<HTML>

<HEAD>

<TITLE></TITLE>

</HEAD>

<BODY>

<%DIMInsert_CD

setInsert_CD=Server.CreateObject("CD.CD_Handle")

Insert_CD.Addrequest.form("ID"),request.form("Name"),request.form("Author"),request.form("Price"),request.form("Information")

%>

<p>您已乐成的到场一条书目</p>

<formname="A"Method="POST"Action="ListCdInformation.asp">

<inputtype="SUBMIT"Value="前往"name="B1">

</form>

</body>

</html>

6、总结

  下面我扼要的先容了组件的界说和利用VB来编写ASP中组件的办法,实在下面所举的例子只是很深刻的例子,信任人人写出的程序必定会比我的更好,我想假如无机会的话,我还会感谢怎样利用VC++和Java来编写COM组件,由于我以为,假如你没有把握COM组件,你也就没有把握ASP的精华。
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
小女巫 该用户已被删除
沙发
发表于 2015-1-18 21:54:44 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
因胸联盟 该用户已被删除
板凳
发表于 2015-1-27 07:49:59 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
精灵巫婆 该用户已被删除
地板
发表于 2015-2-5 06:06:52 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
蒙在股里 该用户已被删除
5#
发表于 2015-2-11 07:28:49 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
小魔女 该用户已被删除
6#
发表于 2015-3-2 00:09:58 | 只看该作者
掌握asp的特性而且一定要知道为什么。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-11 01:28:43 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-17 18:10:43 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
飘灵儿 该用户已被删除
9#
发表于 2015-3-24 19:53:21 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 20:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表