资源简介 (共46张PPT)第九单元 Web程序访问数据库任务9.1通过Web程序连接数据库任务9.2通过Web程序查询数据库任务9.3通过Web程序更新数据库9.1.1 情景描述9.1.2问题分析9.1.3 解决方案9.1.4 知识总结9.1.5 应用实践任务9.1通过Web程序连接数据库学生信息管理系统不仅要求能够查询数据,在使用过程中还经常需要添加某些具体信息。开发人员希望在查看所有系部信息的基础上提供添加新的系部信息的功能,数据添加成功后能在数据库内查看到插入的新记录。9.1.1 情景描述为了完成上述问题,需要做以下任务:1.在SQL Server 2008里配置好“学生管理”数据库。2.安装、配置IIS。编写添加系部信息的ASP代码,通过该代码连接“学生管理”数据库,让用户输入新的系部信息、提交到数据库,并把这些记录显示在网页上。3.执行该ASP程序。9.1.2问题分析1.在SQL Server 2008里配置“学生管理”数据库;2.安装、配置IIS,编写insert_xibu.asp,具体代码。3.打开浏览器,在地址栏输入:http://localhost/student/student.asp,运行该页面,结果如图所示。9.1.3 解决方案在数据库的实际应用中,大部分功能都是通过应用系统的Web页面来实现,比如在学生信息管理系统里通过网页显示学生信息、查询选课情况、管理员添加教师信息等,都是通过软件系统的网页提出要求、查看结果。SQL Server本身是作为一种数据库服务而存在,而提供用户界面、处理业务逻辑等功能是由某个开发环境实现的应用系统来完成。除了数据库管理员和系统开发人员,我们不可能要求普通用户直接面对数据库输入SQL命令或进行配置操作。因此需要系统开发人员通过Web程序实现和数据库的连接,在连接数据库的基础上对数据库进行访问,实现查询、增、删、改的操作。根据开发技术的不同,通过程序访问数据库的方法也有所不同,本单元以ASP代码为例向读者介绍如何通过Web程序访问SQL Server 2008数据库。9.1.4 知识总结ASP(Active Service Pages,动态服务器网页技术)是开放式Web服务器应用程序开发技术,它并不是开发语言或者开发工具,而是一种服务器端的脚本运行环境。它能够把HTML、脚本、组件、数据库访问功能结合在一起,形成一个在服务器端运行的应用程序,响应用户在客户端发出的请求。ASP通过ADO访问数据库。ADO(ActiveX Data Object)是一个ASP内置的服务器组件,是连接Web应用程序和OLE DB(Object Linking & Embedded)的桥梁,在ASP代码里应用它可以达到通过网页连接数据库、执行SQL命令的目的。ADO几乎兼容各种数据库系统,例如Microsoft Access、SQL Server、Oracle、FoxPro等。ADO简介ADO是基于OLE DB之上的面向对象的数据访问模型。OLE DB是Microsoft开发的一种高性能、基于COM的底层数据访问接口,其作用是向应用程序提供一个统一的数据库访问方法,而不需要考虑数据源的具体格式和存储方式。ADO组件包含了所有的可以被OLE DB标准接口描述的数据类型,通过ADO的方法和属性可以为应用程序提供统一的数据访问方法和接口。应用程序通过ADO组件的通用接口与OLEDB的数据库驱动程序连接,OLE DB根据实际的物理数据库选择相应的驱动程序,达到操作实际数据库的目的。ADO技术是通过ADO对象的属性、方法来完成数据库访问操作的。ADO主要由七个对象和四个数据集合组成。七个对象是Connection对象、Command对象、Recordset对象、Field对象、Property对象和Error对象。四个数据集合是Fields集合、Properties集合、Parameters集合和Error集合。在面对数据库进行操作时,一般是利用Connection对象建立与数据库的连接,然后利用Command对象对数据库执行查询、增、删、改的操作,执行SQL命令后一般会得到Recordset对象,最后在记录集中进行操作,对数据进行读取或者显示。代表与数据源的连接,包含了关于目标数据库数据提供者的相关信息。可利用Connection对象管理与数据库的连接,包括打开连接、关闭连接、运行SQL命令等。Connection对象又称命令对象,负责对数据库提供请求,即传递指定的SQL命令,通过已建立的连接发出命令来操作数据源。可对数据库执行增加、删除、修改的操作,或者从表中检索数据,并以记录集的形式返回。Command对象又称为记录集对象,表示来自基本表或命令执行结果的记录的集合,由记录(行)和字段(列)组成。可把它看成是内存中的二维表,存放的是来自表或查询结果的记录集。Recordset对象又称为字段对象,如果将记录集看作二维表格,每一字段(列)就是一个Field对象。它具有名称、数据类型、值等属性,其值包含的是来自数据源的真实数据。Field对象要使用ADO对SQL Server进行操作,首要的步骤是创建要访问的数据库的连接,这就需要用到Connection对象。(1)创建Connection对象在使用Connection对象之前必须先创建该对象,其语法如下:<% Set Conn = Server.CreateObject("ADODB.Connection") %>Conn为创建的Connection对象的自定义名称,使用此对象可进行与数据库的连接操作。用Connection对象连接数据库Open方法:用于建立与数据库的连接。创建好Connection对象后,需要调用Open方法建立与数据库的连接,才能进行其它操作。Execute方法:在数据库连接建立好后,可通过Execute方法进行对数据库的查询、编辑操作。Close方法:用于关闭一个已经打开的Connection对象,释放与连接有关的系统资源。Connection对象的常用方法Attribute:定义Connection对象的事务处理方式。ConnectionString:用于返回一个包含了创建连接时的所有信息的字符串。ConnectionTimeout:定义与数据源建立连接时的最长等待时间,默认为15S。Mode:用于表示连接的写权限。Connection对象的常用属性第一种方法通过OLE DB方式连接,连接字符串如下:"PROVIDER=SQLOLEDB;Server=UJILKV6K1FVD3OH;UID=sa;PWD=123456;DATABASE=学生管理“第二种方式通过ODBC数据源方式连接,连接字符串如下:"DSN=student; DATABASE=学生管理;UID=sa;PWD=123456“第三种方式通过ODBC驱动程序方式连接,连接字符串如下:"Driver={SQL Server};Server=CET;DATABASE=学生管理;UID=sa;PWD=123456“Driver:指定数据源驱动程序的名称,Microsoft SQL Server使用{SQL Server}。Server:同样指定数据库服务器的名称。DATABASE:指定要连接的数据库名称。使用Connection对象连接SQL Server 2008数据库的方法【例9-1】编写ASP程序,使用OLE DB方式连接SQL Server 2008里的“学生管理”数据库。已知数据库的用户ID为"sa",密码为"123456",数据库服务器名为"CET"。①在SQL Server 2008里配置“学生管理”数据库;②安装、配置IIS,编写oledb.asp,具体代码如下:连接SQL Server 2008数据库<%dim ConnSet Conn = Server.CreateObject("ADODB.Connection")Conn.open "PROVIDER=SQLOLEDB;Server=CET;UID=sa;PWD=123456;DATABASE=学生管理"'OLEDB方式连接数据库 Response.Write ""&"OLE DB方式连接数据库成功!"&"" Conn.CloseSet Conn=nothing%>③打开浏览器,在地址栏输入:http://localhost/student/oledb.asp,回车运行该页面,结果如图所示。说明:本例直接把连接字符串传递给Open方法,也可把它赋值给ConnectionString属性。数据库操作完成后,需要关闭连接,释放掉所占用的资源。【例9-2】编写ASP程序,使用刚才创建的数据源student,通过ODBC数据源方式连接SQL Server 2008里的“学生管理”数据库。已知数据库的用户ID为"sa",密码为"123456"。①在SQL Server 2008里配置“学生管理”数据库;②安装、配置IIS,编写odbc.asp,具体代码如下:连接SQL Server 2008数据库<%dim ConnSet Conn = Server.CreateObject("ADODB.Connection")Conn.ConnectionString="DSN=student;Database=学生管理;UID=sa;PWD=123456"Conn.open'ODBC数据源方式连接数据库 Response.Write ""&"ODBC数据源方式连接数据库成功!"&"" Conn.CloseSet Conn=nothing%>③打开浏览器,在地址栏输入:http://localhost/student/odbc.asp,回车运行该页面,结果如图所示。说明:本例把连接字符串赋值给ConnectionString属性,那么后面可直接调用Open方法打开连接。使用ODBC数据源方法连接数据库前,需要在服务器上配置要连接的数据库的ODBC数据源。【例9-3】编写ASP程序,通过ODBC驱动程序方式连接SQL Server 2008里的“学生管理”数据库。已知数据库的用户ID为"sa",密码为"123456",数据库服务器名称为“CET”。①在SQL Server 2008里配置“学生管理”数据库;②安装、配置IIS,编写driver.asp,具体代码如下:连接SQL Server 2008数据库<%dim ConnSet Conn = Server.CreateObject("ADODB.Connection")Conn.ConnectionString=" Driver={SQL Server};Server=CET;DATABASE=学生管理;UID=sa;PWD=123456"Conn.open'ODBC驱动程序方式连接数据库 Response.Write ""&"ODBC驱动程序方式连接数据库成功!"&"" Conn.CloseSet Conn=nothing%>③打开浏览器,在地址栏输入:http://localhost/student/driver.asp,回车运行该页面,结果如图所示。说明:这种方式直接使用ODBC驱动程序,不需要提前在系统里配置ODBC数据源。Recordset对象又称为记录集对象,是ADO最重要的一个对象。它存放来自表的查询结果,以记录(行)和字段(列)的形式构成。在使用Connection对象连接好数据库后,可利用Recordset对象对数据库进行操作。Recordset对象将创建一个数据库的指针,也叫数据游标,通过游标对从数据源那里得到的数据集进行各种操作。Recordset对象在使用Recordset对象之前必须先创建该对象,其语法如下:<% Set rs = Server.CreateObject("ADODB. Recordset") %>rs为创建的Recordset对象的自定义名称。创建Recordset对象Open方法:此方法用来打开记录集Close方法:在结束了记录集对象的操作后,可用该方法释放所有关联的系统资源。移动记录指针的方法:包含MoveFirst、Movelast、MoveNext、MovePrevious、Move一系列方法,通过这些方法用来把记录指针移动到记录集对应的记录上。编辑修改数据的方法:包括AddNew、Update、CancelUpdate、Delete等方法,可用于增、删、改数据记录。Recordset对象的常用方法行为属性:包括CursorType、LockType、Filter等属性。与指针移动有关的属性:包括BOF、EOF等,这两个属性用来判断指针是否在Recordset对象的首记录之前或尾记录之后。与系统维护有关的属性:包括Source和Activeconnection等。与记录排序有关的属性:包括CursorLocation、Sort等。Recordset对象的常用属性Fields集合:记录集对象里的所有字段对象构成了Fields集合。利用这个集合的属性和方法可以方便的操作记录集,比如Count属性可以返回记录集对象里的字段数目,Item属性可以访问记录集里的指定字段。Field对象:记录集里的每一个字段就是一个Field对象。Field对象具有两个非常重要的属性:Name(字段名)和Value(字段值)。Fields集合与Field对象9.1.5 应用实践编写查看商品信息的ASP代码,通过该代码连接“销售”数据库、读取所有商品信息,并把这些记录显示在网页上。已知数据库的用户ID为"sa",密码为"123456",数据库服务器名称为“CET”。1.在SQL Server 2008里配置“销售”数据库;2.安装、配置IIS,编写product.asp 。3.打开浏览器,在地址栏输入:http://localhost/sale/product.asp,回车运行该页面,结果如图所示。9.2.1 情景描述9.2.2问题分析9.2.3 解决方案9.2.4 知识总结9.2.5 应用实践任务9.2通过Web程序查询数据库由于学生信息规模过于庞大,学生信息管理系统在使用过程中经常需要查看某一个学生的具体信息。因此开发人员希望在查看所有学生信息的基础上增加信息查询功能,能够按照学生的学号或姓名查询某个学生的具体信息。9.2.1 情景描述为了完成上述问题,需要做以下任务:1.在SQL Server 2008里配置好“学生管理”数据库。2.安装、配置IIS。编写查询学生信息的ASP代码,通过该代码让用户输入查询条件,连接“学生管理”数据库、打开“学生”表,按照查询条件得到满足搜索条件的记录集,并把这些记录显示在网页上。3.执行该ASP程序。9.2.2问题分析9.2.3 解决方案1.在SQL Server 2008里配置“学生管理”数据库;2.安装、配置IIS,编写search_student.asp:3.打开浏览器,在地址栏输入:http://localhost/student/search_student.asp,回车运行该页面。第一次访问该页面时,因为并没有查询条件,所以显示学生表里的所有学生信息,如图所示。4.在下拉菜单里选择查询项目,比如选择按“姓名”查询;在文本框里输入需要查询的内容,比如“王”,点击“查询”按钮,将进行模糊查询,最后得到学生姓名中包含“王”字的所有学生信息,如图所示。很多时候我们需要对数据库内的原有数据进行过滤,从中搜索出满足某些条件的记录,这意味着我们在获取记录集的时候需要把执行查询操作的SQL命令传递给数据库。例如,在创建了对“学生管理”数据库的连接对象后,如果希望查看“学生”表里的男生信息,那么需要建立Recordset对象、并且打开满足条件的数据记录集。需要如下语句:<% Set rs = Server.CreateObject("ADODB. Recordset")rs.Open "select * from 学生 where 性别='男'",Conn,2,2%>第一个参数是一条SQL命令,代表记录集指向的是满足当前SQL命令的“学生”表的数据,即性别为“男”的学生记录;第二个参数为当前已经建立的数据库连接对象的名称Conn;第三个参数值“2”代表以动态指针的方式在记录集中移动;第四个参数值“2”代表当前记录集只能同时被一个客户修改,修改时锁定,修改完毕释放。通过这种方式,我们可以构建满足搜索条件的SQL命令,从而得到各种想查询的结果。9.2.4 知识总结编写查询商品信息的ASP代码,通过该代码连接“销售”数据库、打开“商品”表,查询表里价格超过100元的商品ID、名称、价格、生产日期,并把这些记录显示在网页上。已知数据库的用户ID为"sa",密码为"123456",数据库服务器名称为“CET”。1.在SQL Server 2008里配置“销售”数据库;2.安装、配置IIS,编写search_product.asp;3.打开浏览器,在地址栏输入:http://localhost/sale/search_product.asp,回车运行该页面,结果如图所示。9.2.5 应用实践9.3.1 情景描述9.3.2问题分析9.3.3 解决方案9.3.4 知识总结9.3.5 应用实践任务9.3通过Web程序更新数据库学生信息管理系统不仅要求能够查询数据,在使用过程中还经常需要添加某些具体信息。开发人员希望在查看所有系部信息的基础上提供添加新的系部信息的功能,数据添加成功后能在数据库内查看到插入的新记录。9.3.1 情景描述为了完成上述问题,需要做以下任务:1.在SQL Server 2008里配置好“学生管理”数据库。2.安装、配置IIS。编写添加系部信息的ASP代码,通过该代码连接“学生管理”数据库,让用户输入新的系部信息、提交到数据库,并把这些记录显示在网页上。3.执行该ASP程序。9.3.2问题分析1.在SQL Server 2008里配置“学生管理”数据库;2.安装、配置IIS,编写insert_xibu.asp;3.打开浏览器,在地址栏输入:http://localhost/student/insert_xibu.asp,回车运行该页面。第一次访问该页面时,显示添加系部信息的界面以及系部表里的所有系部信息,如图所示。9.3.3 解决方案4.在文本框内输入要添加的系部信息,如图所示。5.点击“提交”按钮,可以看到刚才提交的系部代码为“6”的新数据已经显示在列表里,信息添加成功,如图所示。同时可在数据库内查看到刚才添加的新记录。对数据库的访问除了进行查询操作,很多时候还需要在原有的数据记录的基础上进行增加、删除、修改。我们在介绍Connection对象的方法时提到过Execute方法,该方法可以用于执行SQL命令,完成对数据库的更新。该方法的语法格式如下:Connection对象.Execute(CommandText,[RecordAffected],[Options])其中各参数含义如下:CommandText:可以是SQL语句、数据库表名或者存储过程等字符串。RecordAffected:可选参数,返回本次操作所影响到的记录数。Options:可选参数,指定CommandText参数的类型。Execute方法执行的SQL命令可以是查询操作,也可以是数据库更新的操作。因此,我们可以通过给CommandText参数赋值数据更新命令来实现数据增、删、改的操作。9.3.4 知识总结编写修改商品信息的ASP代码,通过该代码连接“销售”数据库、打开“商品”表,把商品ID为“3”的商品的价格修改为5元。已知数据库的用户ID为"sa",密码为"123456",数据库服务器名称为“CET”。1.在SQL Server 2008里配置“销售”数据库;2.安装、配置IIS,编写update_product.asp;3.打开浏览器,在地址栏输入:http://localhost/sale/update_product.asp,回车运行该页面,可以看到编号为“3”的商品的价格从4.5元修改为了5元,结果如图所示。同时可在数据库内查看到刚才修改的记录。9.3.5 应用实践1.Connection对象、Command对象、Recordset对象和Field对象。2.用Connection对象连接数据库。3.Recordset对象对数据库进行操作4.记录集对象里的所有字段对象构成了Fields集合,记录集里的每一个字段就是一个Field对象。5.建立Recordset对象、并且打开满足条件的数据记录集。6.Execute方法用于执行SQL命令,完成对数据库的更新。7.Close方法关闭一个已经打开的Connection对象,释放与连接有关的系统资源。8.ConnectionString返回一个包含了创建连接时的所有信息的字符串。本章小结 展开更多...... 收起↑ 资源预览