ASPSQL网站数据库程序设计Chap_第1页
ASPSQL网站数据库程序设计Chap_第2页
ASPSQL网站数据库程序设计Chap_第3页
ASPSQL网站数据库程序设计Chap_第4页
ASPSQL网站数据库程序设计Chap_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 336ASP与SQL数据库程序设计-. z -. - 考试资料11ADO对象的根底与应用11-1ADO对象的构造11-2Connection对象11-3Rrcordset对象的根底11-4ADO对象与ODBC的应用11-5Error对象11-1 ADO对象的构造既然ODBC如此方便,则为什么又要推出新的OLE DB构造呢.ODBC对于SQL的存取使用了C语言接口,而OLE DB则是为 ponent Object Model而设计的。因此,对于用户而言,采用OLE DB将会比ODBC的存取效率更高,这就是ASP要构建于OLE DB之上的原因。11-1-1ADO对象面向对象的程序设计概念

2、让程序的编写以模块化方式进展。如此会使程序更有效率,也会因为模块化设计的因素而使得维护工作变得比拟容易。数据库的存取将趋于一致性。ADO可以省去不少时间而去学习各种不同的SQL系统。ADO可以将看起来复杂的数据库系统的连接、维护工作变成一件相当容易的事。图11-1 ADO对象的构造图11-1-2ADO的构造要创立一个Recordset,必须提供详细的用户识别码、连接密码及想要查询的条件,这样才可以顺利连接到相应的数据库去进展数据的存取操作。例如,用户要从数据库效劳器上取得数据,首先必须经过用户及密码确实认,确认无误后才可进一步取得和数据库的连接,这种状态会一直持续到应用程序完毕为止。假设用户在

3、任何时候想使用Recordset对象连接到数据库,必须遵照前面连接到数据库的操作。在ADO构造之下,提供了几种对象供程序设计人员应用。它们分别是:Connection对象Recordset对象mand对象Error对象Connection对象在这条语句执行之后,实际上尚未连接到任何数据库系统,只能说完成数据库连接前的定义工作,下面将介绍如何连接到数据库系统。11-2 Connection对象在这个实例执行之后,实际上并未连接到任何数据库系统,只是完成数据库连接前的声明操作,下面主要介绍如何连接到数据库。11-2-1连接、翻开数据库的方法OBJConn.open ConnectionString

4、, UserID, Password其中ConnnectionString代表一个数据源Data Source Name,DSN,UserID代表数据库系统授权连接的用户名,Password代表该用户的连接密码,至于数据源请参考ODBC说明。假设系统已经安装了MS SQLServer 2000,则可以用以下的例来连接数据库:在此例中,使用上一章创立的Trade数据源。例程序:E*11-01.asp图11-2 与数据库连接成功的例执行结果图11-3 与数据库连接失败的例执行结果程序容01: 02: 03: 04: 05: E*11-01.asp 与SQL Server 建立连接06: 07: 0

5、8: 21: 22: 程序说明第11行:使用Server.CreateObject方法创立一个Connection对象,并赋给名为OBJConn的对象变量。第12行:使用OBJConn变量的翻开属性,翻开名为Trade的ODBC系统数据源,同时在翻开的过程中,使用的登录ID为Test,密码为test1。第13行:假设或密码错误,OBJConn变量的状态值将会返回0。正常连接时,状态值将会返回1。第14行:假设返回的值为1,显示OBJConn与数据库连接成功的信息。第15行:关闭OBJConn所翻开的连接通道。第17行:假设返回的状态值为0,显示OBJConn变量的执行过程产生错误!的信息。第1

6、9行:将自定义的OBJConn变量释放。11-2-2直接使用ADO与SQL连接11-2-3直接与Access MDB连接程序容或是上述例的第二种方法使用server .mappath(pws.mdb)翻开数据库,此方法可将Access数据库直接放在的ASP执行目录中存取。因其不使用ODBC就可翻开数据库,因此适用于免费。此种方法也有助于隐藏ODBC的连接,不易被窃取ODBC的路径信息。11-3 Recordset对象的根底Recordset对象的属性如表11-1所示。表11-1 Recordest对象的属性说明属性说明AbsolutePage设置当前记录所在位置是第几页AbsolutePosi

7、tion设置记录集对象所在位置是第几条记录ActiveConnection设置记录集属于哪一个Connection对象BOF检验当前记录集对象所指位置是否在第一条记录之前,假设成立,则返回True,否则返回False续表属性说明EOF检验当前记录集对象所指位置是否在最后一条记录之后。假设成立,则返回True,否则返回FalseCacheSize设置记录集对象在存中缓存的记录数Cousor设置记录集对象的光标类型,共分为四种,分别为Dynamic,Static,Forward-only,KeysetEditMode指定当前是否处于编辑模式LockType在记录集的当前位置锁定记录PageSize

8、设置记录集对象一页所容纳的记录数PageCount显示记录集当前的页面总数Recordset对象的方法如表11-2所示。表11-2 Recordset对象的方法方法说明AddNew添加一条空白记录CancelBatch取消一个批处理更新操作CancelUpdate取消已存在的和新的记录所做的任何改变Close关闭翻开的记录集GetRows取得记录集的多条记录Movefirst将RS记录集对象的指针移至记录集对象中最顶端的记录Moveprevious将RS记录集对象的指针向上移动一条Movene*t将RS记录集对象的指针向下移动一条Movelast将RS记录集对象的指针移至记录集对象中最底端的记

9、录Open翻开一个记录集Requery重新执行查询Update向数据库提交对一条记录的改变或添加Fields.count显示该记录集对象所含有的字段数Recordset对象可以创立一个记录集合,并且将所需的记录从表中取出,同时,使用虚拟表格的方式,每一行为一条记录,每一列则代表一个字段,提供应ASP程序处理,如下所示。分类编号产品代号产品名称产品简述记录指针550001000001LA-Gear Mouse PADMODEL No. TMP 0312550001000002LA-Gear Mouse PAD 1MODEL No. TMP 04Recordset中的记录指针具有游标类型(Curs

10、orType)。不同的游标类型,可对记录集进展不同的操作,默认值为0,代表记录指针只能向前移动记录集,也可定义成其他值,允许记录指针在记录集中上下移动。数据源本身具有锁定的能力(LockType)。具有这项功能最主要的目的在于防止两个SQL Query操作同时写同一条记录。当前记录指针的位置:Recordset的MoveFirst方法可以将记录指针移到第一条记录的位置,MoveLast方法可将记录指针移到记录集合的最后一条,MoveNe*t方法可使指针移到下一条,MovePrevious方法则是移到上一条。Recordset对象在使用前同样需要使用Connection对象建立数据库的连接,其步

11、骤如下所示:1创立Connection对象,翻开数据源。首先需要创立一个Connection对象,并保存在OBJConn变量中,然后翻开数据源,程序代码如下所示:Set OBJConn = Server.CreateObject(ADODB.Connection)OBJConn.Open strDSN 翻开数据源2创立Recordset对象。在取得与数据库的连接之后,接着即可创立Recordset对象,其程序代码如下所示:Set Rs = OBJConn.E*ecute( SQLstr )3翻开Recordset取得数据。在Recordset对象创立完成之后,即可翻开Recordset对象的容

12、。此Recordset对象的容可以是表、SQL查询语句,如果是表,其命令如下所示:Rs.Open 产品根本信息, OBJConn, adOpenStatic, adLockReadOnly, adCmdTable或是Set Rs = OBJConn.E*ceute(mandTe*t, RecordsAffected, Options)上述程序代码使用Recordset对象Rs的Open方法翻开产品根本信息表,第二个参数为Connection对象OBJConn,后面三个参数为定义在文件adovbs.inc中的常数,定义Recordset对象的存取方式。4处理Recordset对象的记录。在翻开R

13、ecordset对象的记录集合之后,即可开场使用Recordset对象的属性及方法,进展表的操作或取得当前的状态。例如:取得Recordset对象的状态属性State,如下所示:If Rs.State = 1 Then Response.Write(Rs 对象目前处于翻开的状态)Else Response.Write(Rs 对象目前处于关闭的状态)End If上述程序代码是利用If.Then.Else语句的方式,检查状态属性State,查看当前Recordset对象的翻开状态。如果返回值为1,则代表状态已翻开,返回值为0则代表状态已关闭。5关闭Recordset对象。Rs.CloseSet R

14、s = Nothing在执行上述程序代码之后,将会关闭Recordset对象,并且由Set Rs = Nothing释放Recordset对象。6关闭与数据库的连接。最后关闭数据库连接,OBJConn.CloseConnection对象的Close方法,如下所示:OBJCConn.Closeset OBJConn = Nothing例程序:E*11-02.aspSet Rs=OBJConn.e*ecute(Select 产品代号, 产品名称 from 产品根本信息)图11-4 例的执行结果程序容01: 02: 03: 04: 05: E*11-02.asp Recordset 执行例06: 0

15、7: 08: 09: %10: On Error Resume Ne*t11: TableName = 产品根本信息12: Set OBJConn = Server.CreateObject(ADODB.Connection)13: strDSN = DSN=Trade;uid=test;pwd=test114: OBJConn.Open strDSN15: SQLstr = Select 产品代号, 产品名称 from & TableName16: Set Rs = OBJConn.E*ecute (SQLstr)17: Response.Write 18: For I = 0 To Rs.

16、Fields.Count -119: Response.Write( & Rs(I).Name & )20: Ne*t21: Response.Write 22: if Not Rs.Eof then23: Rs.MoveFirst24: Do While Not Rs.Eof25: Response.Write 26: For I=0 to Rs.Fields.Count -127: Response.Write & Rs(I) & 28: Ne*t29: Response.Write 30: Rs.MoveNe*t31: Loop32: else33: Response.Write 没有相

17、符的信息可供读取!34: end if35: OBJConn.Close 36: Set Rs = Nothing 37: Set OBJConn = Nothing 38: %39: 40: 41: 程序说明第15行:设置希望执行的SQL Query变量。第1820行:取得字段的名称第22行:如果Recordset对象当前记录指针的位置不是在文件尾,即可使用Rs.MoveNe*t方法逐条移动记录指针。因此,在判断记录指针是否到达文件尾时,可以参考以下的设置信息。表11-3 EOF与BOF属性属 性功能简述BOF只读属性,当前指针是否在记录集合的开头,即第一条记录之前EOF只读属性,当前的指针

18、是否在记录集合的最后,即最后一条记录之后第2431行:利用Do.Loop语句作为Recordset对象的有效记录集合围控制。第2628行:利用For.Ne*t循环语句,将记录集合中的各个字段容显示出来。第30行:将有效的记录指针向下移一条记录。第3537行:关闭与数据库的连接,同时释放Rs,OBJConn变量。11-3-1取得字段名称与容Fields对象属于Recordset对象的Fields数据集合,其可以在ASP程序中取得字段的信息。常用属性如表11-4所示:表11-4 Fields的常用属性属 性功 能 简 述Count取得当前Recordset对象记录集合中的字段数量Name取得当前R

19、ecordset对象记录集合中的字段名称Value取得当前Recordset对象记录集合中的字段容Type取得当前Recordset对象记录集合中,字段的数据类型如果需要取得当前Recordset对象记录集合中的字段数量,可以采用如下的程序代码取得:在上述程序代码执行之后,将会取得当前Recordset对象记录集合中的字段数量。在取得字段数量之后,即可根据索引来取得字段的名称、数据类型、长度等信息。程序代码如下所示:Rs.Fields(I).NameRs.Fields(I).ValueRs.Fields(I).TypeRs.Fields(I).AttributesRs.Fields(I).De

20、finedSize上述程序的索引变量I是从0开场,增量为1,持续累加直到I为FieldCount - 1为止,依次取得字段的相关信息。例程序:E*11-03.asp用ASP程序所创立的Recordset对象,翻开产品根本信息表,以HTML表格形式,将表字段名称、容以及数据类型,逐项显示在浏览器上,如图11-5所示。图11-5 取得表的字段名称、字段容以及数据类型等信息在上图中,可以看到字段的数据类型,但是这些数据类型全部都以数字形式表示,到底这些数字代表什么意义,请参考表11-5即可得知。表11-5 数据类型数据类型SQL Server 2000 的数据类型200varchar可变长度字符数据

21、类型131decimal固定精度和小数位的数字数据129Char固定长度字符数据类型11Bit1或0的整数数据程序容01: 02: 03: 04: 05: E*11-03.asp 取得字段详细信息06: 07: 08: 09: %10: On Error Resume Ne*t11: TableName = 产品根本信息12: Set OBJConn = Server.CreateObject(ADODB.Connection)13: strDSN = DSN=Trade;uid=test;pwd=test114: OBJConn.Open strDSN15: SQLstr = Select

22、* from & TableName16: Set Rs = OBJConn.E*ecute (SQLstr)17: if Not Rs.Eof then18: Rs.MoveFirst20: Response.Write 字段总数 & FDCount & 21: Response.Write 22: Response.Write 字段索引字段名称23: Response.Write 字段容数据类型24: Response.Write 字段属性定义长度25: Response.Write 实际容长度26: Response.Write 27: For I = 0 to FdCount - 12

23、8: Response.Write 29: Response.Write & I & 30: Response.Write & Rs.Fields(i).Name & 31: Response.Write & Rs.Fields(i).Value & 32: Response.Write & Rs.Fields(i).Type & 33: Response.Write & Rs.Fields(i).Attributes & 34: Response.Write & Rs.Fields(i).DefinedSize & 35: Response.Write & Rs.Fields(i).Actu

24、alSize & 36: Response.Write 37: ne*t38: else39: Response.Write 没有相符的信息可供读取!40: end if41: OBJConn.Close 42: Set Rs = Nothing 43: Set OBJConn = Nothing 44: %45: 46: 47: 程序说明第15行:产生希望执行的SQL Query容。第18行:将记录指针移到第一条记录。第19行:设置变量FdCount为字段总数量。第20行:显示产品根本信息表中字段的总数。第30行:显示字段的名称。第31行:显示字段的容。第32行:显示字段的数据类型。第33行

25、:显示字段的属性。第34行:显示字段定义的长度。第35行:显示字段的实际容长度。11-3-2取得、移动记录指针在Recordset对象取得指定的记录之后,通常需要将记录指针移到相应记录上,也就是说,将表的记录指针移到指定的记录上。Recordset对象的相关方法如下所示。表11-6 方法方法功 能 简 述MoveFirst将记录指针移到第一条记录MoveLast将记录指针移到最后一条记录MoveNe*t将记录指针移到下一条记录MovePrevious将记录指针移到上一条记录在上述属于Recordset对象的记录浏览方法上,可以根据不同的CursorType值从而支持不同的方法,这些方法如下所示

26、。表11-7 不同的值支持不同的方法CursorType参数可供使用的方法adForwardOnly只适用于MoveFirst以及MoveNe*t方法adOpenStatic支持Recordset对象所有的方法当然,除了记录的浏览方法之外,Recordset对象还提供如表11-8所示的属性。表11-8 Recordset对象的属性属 性功 能 描 述RecordCount这是一个只读的属性,用以返回符合查询条件的记录总数AbsolutePosition在数值1到RecordCount之间,指定记录指针的位置,如果这个数值为负,则以adPosUnkonwn表示,代表没有符合的记录可供读取上表所示

27、的AbsolutePosition属性可以使用在CursorType的adOpenStatic参数上。对于adForwardOnly参数,它并不支持AbsolutePosition属性。在Recordset对象的数据集合产生之后,用户就可使用Recordset对象所提供的四种方法,在与查询条件相符的记录中,自由地移动记录指针。程序例:Ch11-04.asp使用Recordset对象取得相符的数据后,用Recordset对象的方法在相符的记录集合中,移动记录指针,如图11-6所示。图11-6 移动记录指针例的执行结果程序容01: 02: 03: 04: 05: E*11-04.asp 记录指针移

28、动例06: 07: 08: 09: %10: On Error Resume Ne*t11: TableName = 产品根本信息12: strDSN = DSN=Trade;uid=test;pwd=test113: Set OBJConn = Server.CreateObject(ADODB.Connection)14: OBJConn.Open strDSN16: Set Rs = Server.CreateObject(ADODB.RecordSet)17: RS.Open 产品根本信息,OBJConn, adOpenStatic19: if Not Rs.Eof then20: R

29、esponse.Write 21: Response.Write 产品代号目前状态22: Response.Write 24: Rs.MoveFirst25: Response.Write 26: Response.Write & Rs(产品代号) & 27: Response.Write 第一条29: Rs.MoveNe*t30: Response.Write 31: Response.Write & Rs(产品代号) & 32: Response.Write 下一条34: else35: Response.Write 没有相符的信息可供读取!36: end if37: OBJConn.Cl

30、ose38: Set Rs = Nothing39: Set OBJConn = Nothing40: %41: 42: 43: 程序说明第24行:将当前的记录指针移动到第一条相符的记录上,第26行显示该记录的产品代号。第29行:将当前的记录指针移动到下一条相符的记录上,第31行显示该记录的产品代号。11-3-3Field对象Recordset本质上是由字段构成的,而字段本身有一些属性Attribute的设置,例如字段的大小、数据存放格式、字段名称、字段的外框属性、字段所存储的容等。用户可以使用Field对象字段对象来取得每一个字段的数据,例如:例程序:E*11-05.asp如果用户希望从数据

31、库中读取特定的记录容,可使用以下所示的程序代码,将与条件相符的记录容显示在浏览器上。图11-7 读取特定的记录容例程序执行的结果程序容01: 02: 03: 04: 05: E*11-05.asp 取得字段的详细容06: 07: 08: 09: %10: On Error Resume Ne*t11: TableName = 产品根本信息12: Set OBJConn = Server.CreateObject(ADODB.Connection)13: strDSN = DSN=Trade;uid=test;pwd=test114: OBJConn.Open strDSN15: strSQL

32、= Select * from & TableName16: Set Rs = OBJConn.E*ecute (strSQL)18: if Not Rs.Eof then19: Rs.MoveFirst21: Response.Write 22: For I = 0 to FdCount - 123: Response.Write & Rs.Fields(i).Name & 24: ne*t25: Response.Write 26: Do While Not Rs.Eof27: Response.Write 28: For I = 0 to FdCount - 129: Response.

33、Write & Rs.Fields(i).Value & 30: Ne*t31: Response.Write 32: Rs.MoveNe*t33: Loop34: else35: Response.Write 没有相符的信息可供读取!36: end if37: OBJConn.Close 38: Set Rs = Nothing 39: Set OBJConn = Nothing 40: %41: 42: 43: 程序说明第20行:将Recordset对象查询的字段总数赋予FdCount变量。第2224行:以表格形式显示字段的名称。第2633行:在符合查询条件的记录围,逐条移动记录指针。第2

34、830行:用For.Ne*t循环语句将每一条记录的各字段容以表格形式显示出来。前面所讨论的Recordset对象是由一条以上的记录所组合而成的,对于E*11-05.asp,说明了如何从字段的角度出发,取得记录中每一个字段的值。如果要取得其他记录的值,应如何处理呢.用户可以想象由ADO所创立出来的所有Recordset对象均可以视为一个游标类型,用户可以任意地向上或向下移动到希望的记录位置上。ADO支持四种游标类型,分别为Dynamic、Static、Keyset、Forward-only。Dynamic:这是最常使用并且功能最为齐全的游标类型,用户可以任意移动记录指针,也可以进展记录的更新及删

35、除,值得注意的是这里所做的任何记录修改均可由其他人读取。Keyset的功能有点类似Dynamic,但是所做的任何记录修改均无法由其他人读取。Static游标类型提供只读功能,不能修改任何数据。Forward-only游标类型也是提供只读功能,而且只能单方向移动指针。默认的游标类型为Forward-only,这正好符合大多数网页的需求。一般而言,从数据库效劳器取得数据后,再把这些数据显示出来,在这段时间,用户不会将记录中的数据更新回存到数据库。如果从网页上读取数据,并且将数据回存到数据库,通常也不会去参考以前从数据库上获得的记录。在游标类型中,Forward-only使用较少的资源,是四种类型中

36、效率最高的。假设有特殊要求,读者也可以将游标类型改为Dynamic。11-4 ADO对象与数据库的应用在上一节中,虽然笔者应用了许多以ADO对象读取数据库的容例程序,但大多都以简单的说明带过。为了让读者对ADO对象在数据库的应用方面有更进一步的认识,同时也可以更熟悉数据库中有关记录的处理,在本节中,将在数据库记录的添加、删除、更新等方面,提供更多的例与说明,同时,将会为用户示更多有关SQL语句的操作。11-4-1添加记录如果用户希望在数据库特定表中添加一条记录,则必须使用INSERT语句,以下是INSERT语句的语法:INSERT INTO 表名 (字段名称1 , 字段名称2, .)VALUE

37、S (数据1 , 数据2 , .)在使用INSERT添加数据时必须注意以下几点:表名后面括号字段名称的排列顺序与VALUES后面括号数据的排列顺序必须一致。否则进展数据添加时会发生添加失败。未设置的字段,添加数据时其默认值为Null。添加的一条数据记录,在建立时就给予其默认值,而值是Null。例程序:E*11-06.asp以下的这个例是对产品根本信息表中添加一条记录的例程序。图 11-8 输入数据前的画面图 11-9 添加一条类别信息的例执行结果当用户输入必要的信息后单击确定新增按钮后,用户就会见到如上图所示已经增加了一条记录到表中,而上述执行的程序代码如下所述:程序容01: 02: 05:

38、06: 07: 08: E*11-06.asp 新增一条类别信息09: 10: 11: %12: If Request.Form(Submit) 确定新增 Then13: MainScreen14: Else15: InsertQuery16: end if17: %18: 19: 21: 22: 23: 24: 新增分类25: 26: 类别编号27: 类别名称28: 29: 30: 31: Td32: 33: 34: 36: 37: 38: 40: %41: Function InsertQuery42: TableName = 产品类别43: Set OBJConn = Server.Cr

39、eateObject(ADODB.Connection)44: strDSN = DSN=Trade;uid=test;pwd=test145: OBJConn.Open strDSN46: strSQL = Insert Into & TableName & Values( & _47: & Request.Form(NewClassifyNo) & , & _48: & Request.Form(NewClassifyInfo) & ) 49: Set Rs = OBJConn.E*ecute ( strSQL )50: strSQL = Select * From & TableName

40、 51: Set Rs = OBJConn.E*ecute ( strSQL )52: Response.Write SQL Query 的容: &strSQL53: if Not Rs.Eof then54: Response.Write 55: Rs.MoveFirst57: Response.Write 58: For I = 0 to FdCount - 159: Response.Write & Rs.Fields(i).Name & 60: ne*t61: Response.Write 62: Do While Not Rs.Eof63: Response.Write 64: Fo

41、r I = 0 to FdCount - 165: Response.Write & Rs.Fields(i).Value & 66: Ne*t67: Response.Write 68: Rs.MoveNe*t69: Loop70: Response.Write 71: else72: Response.Write 没有相符的信息可供读取!73: end if74: OBJConn.Close 75: Set Rs = Nothing 76: Set OBJConn = Nothing 77: End Function78: %程序说明第1117行:利用Request.Form(Submit

42、),检查确定新增按钮是否被按下。如果Request.Form(Submit)的值不是确定新增,则执行自定义函数MainScreen。如果按下了确定新增则执行自定义函数InserQuery。第2138行:HTML文件的输入窗体局部。第4078行:自定义函数InsertQuery。这是用来将刚刚输入的文字作为SQL语句的数据来源,同时对表添加一条记录之后,将表中的所有记录显示在浏览器上,以便验证是否确实将数据添加到表中。第46行:将窗体中输入的数据参加SQL语句,赋予变量。第5660行:在浏览器上输出字段的名称。第6269行:将Recordset对象的记录集合输出到浏览器上。11-4-2记录的更新

43、在数据库的操作上,可分为添加、修改、删除及读取等。在了解了添加及读取操作后,接下来要为用户讲解如何更新表中的记录。上面已经介绍过如何连接数据库并读取数据库中的记录,但是要更新数据库中的记录应如何处理呢.游标类型应设置成Dynamic,更新数据使用UPDATE语句,根本语法如下:UPDATE 表名SET 字段1=数据1, 字段2=数据2,WHERE 语句对于更新操作而言,可分为几个局部。所有记录全部更新:可以对表所有的记录同时进展容的更新。不更新索引键值而只更新其他字段的容:仅仅更新每一条记录的非索引字段容。更新索引键值:必须连带地更新其他表中相关联的记录容。以下例说明如何利用Update来更新

44、数据库中的记录。例程序:E*11-07这个例程序主要用来更新刚添加记录的容。本例共分为三局部:1输入希望更新的类别编号。2取出该类别编号的相关容。3对该记录进展更新。接着笔者针对各种不同操作,分别加以说明。例程序:E*11-07A.asp图11-10 输入希望修改的类别编号程序容01: 02: 03: 04: 05: E*11-07A.asp 更新类别信息的容-输入类别编号06: 07: 08: 09: 10: 更新类别编号11: 12: 类别编号13: 14: 15: 16: 17: 18: 19: 20: 程序说明第8行:设置当单击输入按钮后执行E*11-07B.asp。例程序:E*11-

45、07B.asp图11-11 输入希望修改的类别名称 图11-12 执行更新程序前的表容程序容01: 02: 06: 07: 08: 09: E*11-07B.asp 更新类别信息的容-取出类别信息10: 11: 12: % 13: Set OBJConn = Server.CreateObject(ADODB.Connection)14: OBJConn.Open strDSN15: strSQL = Select * From & TableName & Where 类别编号= & Request.Form(ClassifyNo) & 16: Set Rs = OBJConn.E*ecute

46、 ( strSQL )17: Response.Write SQL Query 的容: & strSQL & 18: If Not Rs.Eof Then19: %20: 21: 22: 更新类别编号23: 24: 类别编号25: 26: Input Type=Hidden Name=ClassifyNo Value=27: 28: 29: 30: 类别名称31: 32: Input Type=te*t Name=ClassifyName Size=20 Value= 33: Input Type=Hidden Name=ClassifyNameOri Size=20 Va-lue=34: 3

47、5: 36: 37: 38: 39: 40: 49: 50: 程序说明第3行:设置本次连接使用的DSN名称、以及密码等信息。第4行:设置本次连接的表名。第1314行:翻开与数据库的连接。第1516行:设置取得特定类别相关信息的SQL Query容并且执行SQL Query。第17行:显示本次即将执行的SQL Query容,最主要的目的在于检查即将执行的SQL Query容是否正确。第20行:设置在单击更新确认按钮之后,执行ASP程序E*11-07C.asp第2039行:显示所有产品类别各项字段的容。例程序:E*11-07C.asp执行SQL Query的结果显示。 图11-13 执行更新程序之

48、后的结果显示 图 11-14 执行更新程序之后,表的实际容程序容01: 02: 06: 07: 08: 09: E*11-07C.asp 更新类别信息的容-执行更新程序10: 11: 12: 17: 18: 19: 编号20: 21: 22: 23: 原始类别名称24: 25: 26: 27: 更改后类别名称28: 29: 30: 31: SQL Query 容32: 33: 34: 35: 36: 37: 42: 43: 程序说明第3行:设置本次连接所使用的DSN名称、以及密码等信息。第4行:设置本次连接的表名。第13行:设置更新程序所使用的SQL Query容。第3840行:根据各项设置的

49、信息,执行更新程序。11-4-3记录的删除要在表中删除一条记录,必须使用DELETE语句,使用该语句必须特别注意,一旦数据被删除,将无法恢复。如果没有指定Where语句,将删除表中的所有记录。以下是DELETE语句的语法:DELETE FROM 表名 WHERE 语句例程序:E*11-08A.asp例如希望永久删除表中*一条类别编号时,则程序如下所示:图11-15 输入希望删除的类别编号程序容01: 02: 03: 04: 05: E*11-08A.asp 删除类别信息的容-输入类别编号06: 07: 08: 09: 10: 删除类别编号11: 12: 类别编号13: 14: 15: 16:

50、17: 18: 19: 20: 程序说明第8行:设置当单击删除按钮之后,执行E*11-08B.asp。例程序:E*11-08B.asp这个例程序的作用在于接收E*11-08A.asp文件所传送过来的类别编号信息,并且从数据库中读取相关的信息,并且显示出来。图11-16 显示读取的SQL Query以及详 图11-17 执行删除前表的实际容细的类别信息 程序容01: 02: 06: 07: 08: 09: E*11-08B.asp 删除类别信息的容-取出类别信息10: 11: 12: % 13: Set OBJConn = Server.CreateObject(ADODB.Connection

51、)14: OBJConn.Open strDSN15: strSQL = Select * From & TableName & Where 类别编号= & Request.Form(ClassifyNo) & 16: Set Rs = OBJConn.E*ecute ( strSQL )17: Response.Write SQL Query 的容: & strSQL & 18: If Not Rs.Eof Then19: %20: 21: 22: 更新类别编号23: 24: 类别编号25: 26: Input Type=Hidden Name=ClassifyNo Value=27: 28

52、: 29: 30: 类别名称31: 32: 33: 34: 35: 36: 37: 38: 46: 47: 48: 程序说明第3行:设置本次连接所使用的DSN名称、以及密码等信息。第4行:设置本次连接的表名。第1314行:翻开与数据库的连接。第1516行:设置取得特定类别相关信息的SQL Query容并执行SQL Query。第17行:显示本次读取表容的SQL Query详细容,最主要的目的在于检查即将执行的SQL Query容是否正确。第20行:设置在单击删除确认按钮后,执行E*11-08C.asp。第2037行:显示所有产品类别各项字段的容。例程序:E*11-08B.asp执行删除产品类别表中特定的类别编号。图11-18 执行删除后的结果 图11-19 执行删除程序之后表的实际容程序容01: 02: 06: 07: 08: 09: E*11-08C.asp 删除类别信息的容-执行更新程序10: 11: 12: %13: strSQL = Delete From & TableName & Where 类别编号= & _14: Request.Form(ClassifyNo) & 15: Response.Write SQL Query 容: & strSQL & 16: Set OBJConn =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论