八SQLServer系统应用实例_第1页
八SQLServer系统应用实例_第2页
八SQLServer系统应用实例_第3页
八SQLServer系统应用实例_第4页
八SQLServer系统应用实例_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第8章SQLServer系统应用实例8.1SQLServer2000应用程序接口8.1。1SQLServer2000应用程序接口概述8.1.2ODBC应用程序接口8.1.3OLEDB通用数据访问接口8。1。4A8。2在VB中使用ADO对象开发SQLServer应用程序8.2.1使用ADO对象访问SQLServer数据库8。2。2数据库应用程序实例—-—教学管理系统8.3基于Web的SQLServer应用系统开发8.3.1Web数据库应用概述8。3。2A8。4Web数据库开发实例-—教学管理系统8。4.1系统简介8.4.2程序代码与说明本章主要内容在实际应用环境中,使用企业管理器和查询分析器访问数据库中的数据往往是数据库管理员,大部分的用户还是通过程序员开发的各种应用程序间接访问SQLServer数据库。SQLServer具有优秀的数据库管理性能,但它并不具备图形用户界面的设计功能,因此不能满足客户端用户数据连接和数据操作的要求。SQLServer在数据库应用中一般作为应用系统的后端,而前端图形界面的设计与操作一般使用可视化开发工具,如VisualBasic、Delphi、PowerBuilder等来完成。如果需要将数据和应用程序在网上发布,可使用ASP、ASP.NET、PHP等来实现.本章重点1、VB前台语言,SQLServer建立数据库,设计《教学管理系统》2、ASP前台语言,SQLServer2000后台,设计《教学管理系统》本章难点ADO对象的应用授课方法讲授+实验+作业学时:8课时授课过程如下:8。1SQLServer2000ﻫ应用程序接口:数据库应用程序通过SQLServer2000应用程序接口向SQLServer服务器发送SQL语句,实现数据库的访问.要编写SQLServer2000数据库应用程序,必须学习使用SQLServer应用程序接口。8.1。1SQLServer2000应用程序接口概述SQLServer2000提供了丰富的应用程序接口,使程序员可以快速地开发数据库应用程序。下面我们介绍SQLServer常用的应用程序接口。1、嵌入式SQL嵌入式SQL语言就是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言(例如C语言)语句混合使用。嵌入式SQL的操作过程如下:使用SQLServer的预编译程序将嵌入的SQL语句转换为能被程序设计语言的编译器识别的函数调用;使用程序设计语言的编译器对转换后的文件进行编译,然后连接为可执行程序,即可执行.2、ODBC开放数据库连接ODBC是OpenDatabaseConnectivity的缩写,称为开放数据库系统互连,是微软公司在90年代初开发和定义的一套数据库访问标准,用于访问关系型数据库。使用ODBC开发的应用程序可以访问多种数据库管理系统的数据库,例如SQLServer、Oracle和DB2等.3、OLEDB通用数据访问接口OLEDB是微软90年代后期开发的数据访问通用接口,它不仅提供了对关系型数据库的访问,还提供了对各种各样数据源的访问,例如Excel电子表格、dBase的ISAM文件、电子邮件等。4、JDBCJava数据库接口JDBC(JavaDataBaseConnectivity)是由SUN公司制定的基于Java语言的数据库访问接口,用于实现Java程序访问SQLServer2000数据库,该接口程序未包含在安装盘中,需到微软公司的网站上下载。8。1.2ODBC应用程序接口ODBC是微软公司在90年代初期开发的一种数据库应用程序接口,用于访问关系型数据库,使用ODBC开发的应用程序可以访问多种数据库管理系统的数据库,例如SQLServer、Oracle和DB2等.ODBC由一组具有精确定义的函数组成,称ODBCAPI函数,用来对数据库进行操作。在应用程序中,可以直接使用这些函数,而数据库的底层操作由各个数据库的驱动程序来完成.由于ODBC对数据库应用程序具有良好的适应性和可移植性,所以ODBC在推出后就得到了广泛的应用。1、ODBCSQLServer2000包含本机SQLServerODBC驱动程序,可由ODBC应用程序用于访问SQLServer中的数据。在SQLServer2000中,除isql外的所有其它SQLServer实用工具也都使用ODBCAPI和SQLServerODBC驱动程序。2、ODBC体系结构ODBC数据库应用程序由应用程序、驱动程序管理器、驱动程序和数据源4个部分组成,如图所示。数据库应用程序驱动程序管理器数据库应用程序驱动程序管理器SQLServer数据源Oracle数据源FoxPro数据源DB2数据源SQLServer驱动程序Oracle驱动程序FoxPro驱动程序DB2驱动程序应用程序执行处理并调用ODBC函数。其主要任务如下:连接数据库提交SQL语句给数据库检索结果并处理错误提交或者回滚SQL语句的事务与数据库断开连接3、驱动程序管理器ODBC驱动程序管理器是一个驱动程序库,负责应用程序和驱动程序间的通信。对于不同的数据库系统,驱动程序管理器将加载相应的驱动程序到内存中,并将后面的SQL请求传送给正确的ODBC驱动程序.ODBC应用程序不能直接存取数据库,应用程序的操作请求需要由驱动程序管理器提交给正确的驱动程序。而驱动程序负责将对数据库的请求操作传送到数据库管理系统(DBMS),并把结果返回给驱动程序管理器。然后驱动程序管理器再将结果返回给应用程序,由应用程序处理,并处理错误信息。Applet的安全机制appletapplet浏览器SERVER本地程序fileSERVER本机connectionconnection下载applet的与applet无关的本地方法4、数据源数据源(DataSourceName.DSN)是连接数据库驱动程序与数据库管理系统(DBMS)的桥梁,它定义了数据库服务器名称、访问的数据库、登录名称和密码等选项。数据源分为3类:文件数据源、系统数据源和用户数据源,最常用的是系统数据源。通常,应用程序是通过数据源名来访问数据库。概括地说,使用ODBC进行编程之前,要先安装相应的ODBC驱动程序,再配置ODBC数据源。ODBC数据源包括以不同的格式存储的数据,而不仅仅是SQL数据库中的数据.应用程序使用ODBC驱动程序访问数据源。ODBC驱动程序是一个动态链接库(DLL),它接受对ODBCAPI函数的调用并采取任何必要的操作来处理对数据源的请求。5、配置ODBC数据源使用ODBC编程之前,要先安装相应ODBC驱动程序,再配置ODBC数据源。通常,SQLServer2000ODBC驱动程序已经内嵌在WINDOWS操作系统中。下面,我们仍然以教学数据库(teachdb)为例来介绍配置SQLServer的ODBC数据源,数据源名为“教学”,操作步骤:(1)在控制面板中,单击“管理工具”,然后执行“数据源(ODBC)"命令,打开“ODBC数据源管理器”对话框,如图8-2所示.数据源名ODBC驱动数据源名ODBC驱动程序图8-2ODBC数据源管理器该窗口用来设置ODBC数据源及其驱动程序等。各主要选项卡的功能如下:用户DSN显示了当前登录用户使用的数据源清单。系统DNS显示了可以由系统中全部用户使用的系统数据源清单.文件DNS显示了允许连接到一个文件提供程序的数据源清单。驱动程序显示了所有已经安装的各种数据库系统的ODBC驱动程序.(2)在选项卡中,单击按钮,打开“创建新数据源”对话框,在“名称”列表框中选择SQLServer,如图8-3所示.SQLServerODBC驱动程序SQLServerODBC驱动程序程序图8-3“创建新数据源”对话框(3)单击按钮,打开“建立新的数据源到SQLServer“对话框,如图8—4所示。在“名称”文本框中输入新数据源的名称,如:教学.在“说明”文本框中输入对该数据源的说明,然后在“服务器"下拉列表框中选择要连接到的服务器如:DBSERVER。图8-4“建立新的数据源到SQLServer”对话框(4)单击按钮,系统提示选择验证模式,如图8—5所示。图8—5选择验证模式在此选择选项,并输入登录ID和密码。(5)单击按钮,系统提示用户设置默认数据库等选项,如图8—6所示。在此,更改默认数据库为教学数据库teachdb。图8-6设置连接的默认数据库(6)保持其余默认设置,单击按钮,系统提示用户设置驱动程序使用的语言,字符集区域设置和日志文件等,如图8—7所示。图8-7设置驱动程序使用的语言、字符集等(7)单击按钮,出现“ODBCMicrosoftSQLServer安装”对话框,如图8-8所示.其中显示了新数据源的配置选项。测试数据源测试数据源图8-8“ODBCMicrosoftSQLServer安装"对话框(8)单击按钮,打开“SQLServerODBC数据源测试”对话框,其中显示了SQLServer的驱动程序版本号,并显示测试是否成功的消息.单击按钮,可返回到“ODBCMicrosoftSQLServer安装"对话框。(9)单击按钮,即可创建一个新的数据源.Applet的主要方法构造方法构造方法init()start()完成Applet的初始化操作都是在Applet被激活前执行的,因此不能用它们来实现Applet的功能8.1。3OLEDB数据访问接口OLEDB是微软在90年代后期采用面向对象技术开发的数据访问通用接口,它创建于微软的OLE(对象的链接与嵌入)技术基础上。OLEDB的优点是可以和任何VisualStudio产品协同工作,例如VisualC++,VisualBasic等.它的推出,得到了广泛的支持。可以直接使用OLEDB进行数据库应用程序开发,为了使用户方便地使用OLEDB开发数据库应用程序,微软将OLEDBAPI封装在一个简化了的基于组件(COM)技术的对象模型ADO(ActiveXDataObjects)中,通过ADO,程序员可以快速地开发数据库应用程序,使用ADO是SQLServer2000数据库应用程序开发的有效途径。1、Applet的运行控制关系一个使用paint()方法绘制字符串的Applet程序Java.applet.AppletJava.applet.Appletpublicvoidinit()publicvoiddestroy()publicvoidstart()publicvoidstop()publicvoidpaint(Graphicsg)2、OLEDB体系结构微软定义了OLBDB的4个层次:数据提供者使用OLEDBSDK(软件开发工具)创建OLEDB提供者(Provider)的人.数据消费者访问数据库中信息的应用程序,系统驱动程序或者用户.数据服务提供者创建用以增强用户或者数据库管理员使用管理数据库能力的独立应用程序。例如,查询分析器就是一个数据服务提供者。部件开发者创建应用程序模块或部件,以减少创建数据库应用程序所需的编码工作。例如,VisualBasic中提供的ADO控件。关系一般来说,数据库应用程序即OLEDB消费者是通过OLEDB用户界面和OLEDB提供者(Provider)来访问数据源,它们之间的关系如图8-9所示。数据源应用程序(OLEDB消费者)OLEDB界面(例如ADO等)OLEDB提供者对于不同的OLEDB提供者,OLEDB提供不同级别的功能,但是它们都支持一个通用的用户界面。不同的OLEDB数据源使用自己的OLEDB提供者,如图8-10所示。ADO对象模型ADO是一个OLEDB消费者,它封装了OLEDB复杂性,以极为简单的接口存取数据,简化了数据库应用程序的编写,易于使用,性能好,占用内存和磁盘空间少,并且支持基于客户机/服务器的Web数据库应用程序。使用者只需在程序中建立ADO对象,设置对象相应的属性,调用相关方法,即可完成数据库访问。ADO对象模型ADO的对象模型为层次结构,如图8-11所示。其中每个Connection,Command,Recordset和Field对象都有集合.ConnectionConnectionErrors集合ErrorCommandParameters集合ParameterRecordsetFields集合Field图8-11ADO的对象模式ADO提供的对象及功能ADO提供的对象及基本功能如表8—1所示。除了上述对象外,ADO还提供了Fields、Parameters、Errors、Properties等集合对象。主要的ADO对象在上述众多对象中,主要的ADO对象有3个:连接对象Conection,数据查询对象Command和查询所得记录集对象Recordset。Connection对象Connection对象用于建立应用程序与数据源之间的通信连接。如果是网络环境下的客户端/服务器数据库系统,该对象可等价于客户机到数据库服务器的实际网络连接。在建立连接后,可通过Command对象与Recordset对象来访问数据库中数据.Connection对象的主要属性Connection对象的主要属性如表8-3所示。Connection对象的常用方法Connection对象的常用方法如表8-4所示,其中Open用于打开Connection对象,并建立连接。Excute方法常用于简单查询。对复杂的数据库操作应使用Command对象.Recordset对象Recordset对象(记录集对象)用于存储Connection对象和Command对象的查询结果,应用程序中再利用程序语言来处理该Recordset对象中的记录,Recordset对象主要属性见表8-5.Recordset对象的常用方法Recordset对象的常用方法见表8—6,其中Open用于打开Recordset对象,并对Command对象或Connetion对象加以引用。Recordset对象有11个事件,这里也不说明了。Command对象Command对象主要用于对数据库进行复杂查询,它的功能强大,并可运行存储过程和参数化查询。Command对象如表8-7所示。Command对象Command对象最常用方法是Excute方法.Excute方法用于执行SQL查询命令,并返回打开的结果集对象(Recordset)。也可以用Excute方法执行其它的数据定义命令或存储过程。Connection,Command,Recordset虽然是3个不同的对象,但是三者之间是互相关联,分工协作的。通常,在Connection对象实现了应用程序与数据源之间的通信连接后,执行Command对象的Excute方法实现数据库查询,数据库服务器响应后,再将查询结果存入Recordset对象中.Command对象必须依赖于Connection对象,而Recortset对象要视Connection对象与Command对象的状态而定。8.2在VB中使用ADO对象开发SQLServer应用程序微软在VisualBasic6.0中成功地引入了功能强大的ADO对象作为新的数据库访问标准,它内置了SQLServer的OLEDB驱动程序.另外,为了使数据库应用程序能实现字段的绑定,VisualBasic6。0还提供了一个封装了ADO对象的ADOData控件,使用该控件可以开发简单的数据库访问程序,复杂的数据库访问程序的开发仍必须使用ADO对象,ADOData控件可以起到辅助作用.8.2.1使用ADO对象访问SQLServer数据库在VisualBasic6。0中,使用ADO对象进行数据库访问有多种方式,例如:使用Connection对象和Recordset对象配合使用,实现简单查询。Connection对象、Recordset对象和Command对象配合使用实现复杂查询。使用Command对象执行SQLServer的存储过程。ADO对象的引用在VisualBasic6。0中使用ADO对象编程之前,必须先设置对ADO类库的引用。现以创建一个本书教学数据库teachdb的应用项目为例,其操作步骤:(1)启动VisualBasic,创建一个新的工程,并将工程名称设置为“学生管理”,窗体名称设置为frmStudent.Caption属性设置为“学生信息”。在菜单中,执行命令,打开“引用”对话框,如图8—12所示。引用对话框引用对话框图8—12ADO的对象的“引用"(2)在“可用的引用"列表框中,找到“MicrostoftDataObjects2。6Library"选项,并选中前面的复选框。(3)单击按钮,即可在VisualBasic6.0中增加对ADO对象的引用。如果要查看ADO提供的对象的属性、方法和集合等内容,可以在菜单中,执行命令,打开“对象浏览器”对话框,如图8-13所示。在顶部的列表中选择ADODB,在侧窗格即可显示出ADO中的对象,而右侧窗格则显示出左侧窗格中选中的对象的属性、方法等。各对象的方法、属性ADO各对象各对象的方法、属性ADO各对象图8-13“对象浏览器”浏览ADO对象2.Connection对象、Recordset对象和Command对象配合使用实现数据查询操作基本步骤如下:(1)定义Connection对象、Recordset对象和Command对象。(2)设置Connection对象的连接串ConnectionString属性,准备连接数据库.ConnectionString属性的常用参数见表8-8所示。表8—8ConnectionString属性的常用参数Provider参数指定OLEDB提供者,缺省值是MSDASQL,指ODBC资源提供者Server属性SQLServer服务器名,也可用数据源名DSN属性使用ODBC时,当前机器的ODBC数据源InitialCatalog属性设置连接的默认数据库,也可用DataBase参数UserID属性用户名Password属性用户口令(3)使用Connection对象的Open方法建立到数据源的物理连接。(4)设置Command对象的ActiveConnection属性以便同打开的Connection对象进行关联。(5)使用Command对象的CommandText属性定义要执行的SQL语句文本.(6)使用Command对象的Execute方法执行命令并在需要的时候返回给Recordset对象.(7)处理Recordset对象中的数据。(8)关闭连接【例8。1】实现对教学数据库teachdb中课程表(course)的浏览和添加操作,并使新添加的课程信息在列表框中立即显示。如图8-14,图8—15所示。操作步骤:在VB中新建一个工程,在工程中建一窗口,名为frmCourse,标题为“课程信息",加入下列控件,如图8-14所示。图8-14“课程信息”浏览界面示例图8-15“课程信息"插入界面示例窗口中各控件名称及属性设置如表8-11所示。表8—11控件名称及属性控件名称类型Caption属性说明TxtC_no文本框左边为“课程号”标签TxtC_name文本框左边为“课程名”标签TxtC_score文本框左边为“学分”标签CmdAdd按钮添加CmdList按钮浏览DataGrid1数据网格(Datagrid)其中DataGrid控件,需要在VisualBasic6。0的菜单中运行命令添加部件后,才可在工具箱中找到它的图标,如图8—16,8—17所示。DataGrid控件DataGrid控件图8-16添加“部件"对话框图8-17DataGrid控件程序代码:'通用定义DimcnAsNewADODB.Connection'定义Connection对象DimrsAsNewADODB。Recordset’定义Recordset对象DimcmdAsNewADODB.Command'定义Command对象’窗体Load事件代码PrivateSubForm_Load()cn.ConnectionTimeout=30'设置连接对象属性cn。CursorLocation=adUseClientcn.ConnectionString="DRIVER=SQLServer;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb”cn。Open'打开连接EndSub'CmdAdd按钮Click事件代码PrivateSubCmdAdd_Click()Setcmd.ActiveConnection=cncmd.CommandText="INSERTcourseVALUES(?,?,?)”’带参数的SQL语句cmd.CreateParameter,adChar,adParamInput,4'参数1定义cmd。CreateParameter,adChar,adParamInput,10’参数2定义cmd.CreateParameter,adInteger,adParamInput,4'参数3定义cmd.Parameters(0)=TxtC_no.Textcmd.Parameters(1)=TxtC_name。Textcmd。Parameters(2)=TxtC_score。Textcmd.Execute'运行SQL语句cmd.CommandText=”SELECT*FROMcourse"Setrs=cmd.ExecuteSetDataGrid1。DataSource=rsEndSub’CmdList按钮Click事件代码PrivateSubCmdList_Click()Setcmd。ActiveConnection=cncmd.CommandText="SELECT*FROMcourse"Setrs=cmd.ExecuteSetDataGrid1.DataSource=rsEndSub代码说明Setcmd.ActiveConnection=cn使打开的Connection对象与Command对象关联.cmd。CommandText=“INSERTcourseVALUES(?,?,?)”带参数的SQL语句,每个“?”代表一个参数。cmd.CreateParameter,adChar,adParamInput,4定义参数的类型、长度和方向,此处定义的是字符型,长度为4字节的输入参数,用于表示“课程号"。cmd.Parameters(0)=TxtC_no.Text为参数赋值。3。使用Command对象执行存储过程存储过程可以具有输入和输出参数.在VisualBasic中使用Command对象执行存储过程时,应当指定其输入和输出参数.【例8.2】在SQLServer2000中建立一个存储过程名为Choice_Query,实现输入课程名即可显示教学数据库中选修该课程的所有学生名单信息.然后在VisualBasic中,调用该存储过程,完成相应功能.例8-2存储过程如图8—18所示,在VisualBasic中程序设计界面如图8—19所示。程序代码’通用定义DimcnAsNewADODB.Connection’定义Connection对象DimrsAsNewADODB.Recordset’定义Recordset对象DimcmdAsNewADODB.Command'定义Command对象DimParam0AsNewADODB.Parameter’param0将作为存储过程输入的Parameter对象’窗体Load事件代码PrivateSubForm_Load()cn.ConnectionTimeout=30'设置连接对象属性cn.CursorLocation=adUseClientcn.ConnectionString="DRIVER=SQLServer;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb”cn.Open'打开连接Setcmd.ActiveConnection=cncmd.ActiveConnection=cn’为一个有效的Connection对象cmd.CommandType=adCmdStoredProc'表明执行的是一个存储过程cmd。CommandText="Choice_Query"’Choice_Query为要执行的存储过程名'设置输入的Parameter对象Param0。Direction=adParamInput’表明该Parameter对象为输入参数Param0。Type=adChar'表明该Parameter对象为字符类型Param0.Size=10'输入参数的长度为6个字节cmd.Parameters.AppendParam0'使用Append方法将Param0加入到Parameters集合中EndSub'CmdQuery按钮Click事件代码PrivateSubCmdQuery_Click()Param0.Value=Text1.Text’输入参数值Setrs=cmd.Execute’执行存储过程SetDataGrid1。DataSource=rsEndSub本例中通过使用Command对象和Parameter对象,实现带参数的存储过程的调用,完成复杂的数据查询。错误处理4.使用Error对象进行错误处理任何ADO对象的操作都可能会引起一个或多个OLEDB提供者错误.每个ADO对象操作错误出现时,一个或多个Error对象将被放到Connection对象的Errors集合中.当另一个ADO操作产生错误时,Errors集合将被清空,在其中放入新的Error对象集.通过Error对象的属性可获得每个错误的详细信息。在VisualBasic中可以使用MsgBox函数来提示出现的错误信息。8.2.2数据库应用程序实例-教学管理系统本实例全部采用ADO对象来进行数据库访问,8.3基于Web的SQLServer开发8。3.1Web数据库应用概述在过去的一段时间里,基于C/S(Client/Server)的网络计算机模式为实现企业级的信息共享发挥了重要的作用。但C/S模式也有弱点,如软件实现复杂度高、维护代价高、缺乏开放标准、难以跨平台运行等。随着计算机网络技术和Internet的迅速发展,特别是Web技术的兴起和普及,C/S模式正向基于Web的网络计算机体系演变,当前基于Web的计算平台已经成为网络计算平台的主流,应用也极为广泛。例如我们在网站上所见到的用户登录系统、客户留言板、论坛以及企业产品信息在网站前台的展示等等,无一不和数据库有关。有了Web和数据库的联接,也使用得人们对Web页面的更新和维护变得简单和快捷。基于Web的计算技术采用B/C/S(Browser/Client/Server)三层结构模式,用户界面统一使用浏览器,Web服务器作为信息系统的客户机,它代表用户访问应用服务器——其中最重要的就是数据库服务器.这样,软件开发工作主要集中于服务器端应用程序,无须开发客户端应用程序。服务器端的所有应用程序都可通过Web浏览器在客户机上运行。由于各种操作系统都支持Web浏览器的运行,所以基于Web的应用可以方便地实现跨平台操作。如图8—25所示。在基于Web的三层计算模式中,Web服务器访问数据库的技术是应用系统开发的关键。在Web环境下操作数据库的方法有多种,较有代表性的技术是:CGI(CommonGatewayInterface,公共网关接口)、WebServerAPI(如NSPI、ISPI)及ASP(ActiveServerPages,活动服务器页面)、ASP.NET、PHP等。这里主要介绍如何使用ASP技术来操作SQLServer数据库并进行基于Web的初级数据库开发。ASP技术简介1.什么是ASPASP(ActiveServerPage)是微软公司随其IIS3.0推出的一种主要用于Web服务器访问数据库的技术,它提供使用VBScript或Jscript(Microsoft的JavaScript实现)的服务器端脚本环境,可用来创建和运行动态、交互的Web服务器应用程序。什么是ASPASP提供了一些内建对象,使用这些内建对象可使用脚本的功能更加强大。在ASP中还可以使用ActiveX控件扩展功能,并可使用自己定义的ActiveX控件。ASP最吸引人的是它所提供的访问数据库的能力,使用ADO对象可以很方便地与数据库建立连接和操作数据库。什么是ASP使用ASP时,在HTML中嵌入服务器端脚本,所形成的文件以.asp为扩展名,这种文件称为ActiveX脚本文件。当浏览器向Web服务器请求.asp文件时,服务器端脚本将不被发送到浏览器,而是在Web服务器上执行.通常用VBScript脚本语言编写脚本程序嵌入HTML中,也可以将HTML代码嵌入到VBScript脚本语言里。2.ASP应用程序运行的环境――IIS/Web服务器的配置要调试ASP脚本程序,双击该文件的图标或者在浏览器中打开该文件都是不行的,必须通过Web服务器端的处理才能在浏览器中浏览到相应的页面。实际上,Web服务器在程序执行时要扫描ASP脚本文件,执行服务器端的脚本,并将执行结果替换文件中的服务器端脚本部分,形成HTML发送到浏览器。ﻫIIS/Web服务器的配置

ASP的执行由IIS/Web服务器来完成。要使得Web服务器执行指定的脚本,必须进行适当的配置.可以将要执行的ASP脚本配置成一个站点或者一个虚拟目录。Windows2000Server以上版本(Windows2000Professional版需要人为添加IIS组件)自带的IIS和Windows98的PWS都可以实现。8.4Web数据库开发实例——教学管理系统8.4.1系统简介系统设计目标通过本系统的开发,可以使用学生理解Web前台和后台数据库间的关系。掌握后台数据库的连接方法,以及对后台数据库中的数据进行初步的处理。通过学习本系统的设计,学生可以对SQLserver2000数据库对Web的支持有一个较透彻的了解。本系统虽简单,但已经涵盖了Web数据库的主要内容,所以大家可以在本系统的基础上进行扩展和创新,使之成为一个真正的教学管理系统。2.数据库的准备本系统中所使用的数据库就是教材中作为样例的teachdb数据库以及它所包含的5张表:student,course,choice,teacher和teaching。3.系统运行环境准备配置IIS,新建一个Web站点,主目录指向本系统中所有程序所在的文件夹,系统的默认主文档为index.asp。系统结构和各程序间的关系本系统共有10个程序,各程序的功能及各程序间的关系如图8—30所示。主界面:index.asp这是系统主程序,主要实现系统登录和学生注册。在index.asp界面中输入学生的学号和姓名,而后在check.asp中进行验证,只有输入的学号和姓名和student表中的学号和姓名相一致,才能登录到本系统中,否则要求注册。运行界面如图8-31所示。//【程序清单】index.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE="936"%><html>〈head〉〈metahttp-equiv="Content-Type"content=”text/html;charset=gb2312">〈title〉班级教学管理系统〈/title>〈/head>〈bodybgcolor="#0099FF"text="#FFFF00">〈divalign="center"><p〉&nbsp;〈/p〉<p>〈fontcolor=”#FF0000"size=”7"face="隶书”〉欢迎您来到班级教学管理系统!</font〉〈imgsrc="img/line023.gif"width="100%”height="2”>〈/p>〈formname=”form1"method="post”action=”check。asp”>〈p><fontcolor=”#FFFFFF"〉请输入您的学号:〈/font〉〈inputtype=”text”name="no”>〈/p><p><fontcolor=”#FFFFFF”>请输入您的姓名:</font〉<inputtype="text"name=”name"></p>〈p><inputtype=”submit"name="Submit”value=”登录">〈inputtype="reset”name="Submit2"value="重写"〉</p></form〉<p〉如果您还没有注册,请先<ahref=”regester.asp"〉注册!〈/a></p><p>〈imgsrc="img/line023.gif"width="100%"height="2”></p><p〉&nbsp;</p>〈/div〉</body>〈/html〉2.登录验证界面:check.asp验证输入信息,如果成功,出现各分系统的主界面,如果失败则出现要求注册的界面。在程序中先进行后台数据库的连接,对index.asp页面上的表单信息进行接收后,到teachdb库中的表student中进行查找,如果找到即可登录成功,如果没有找到则要求注册.例如:学号输入“101”,姓名输入“袁敏",程序运行的结果如图8-32所示:程序清单:check.asp//【程序清单】check.asp<%@Language="VBScript”%〉〈%setcn=server.createobject(”adodb.connection")cn.provider="sqloledb"yyy="server=home—091C3D2142;database=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server.CreateObject("adodb.recordset")‘注:以上代码是连接数据库teachdb,并生成记录集实例。t1=request.form("no")t2=request.form("name")‘注:这两句是接收来自前页的表单中输入的学号和姓名。sql="select*fromstudentwheres_no=’"&t1&"’ands_name='”&t2&"'”setrs=cn.execute(sql)%〉<%ifrs。eof=truethenresponse.write"您还没有注册,请先注册,再登录!"else%〉<HTML><HEAD><METANAME=”GENERATOR"Content="MicrosoftVisualStudio6.0"><metahttp—equiv="Content-Type"content="text/html;charset=gb2312"></HEAD>〈BODYbgcolor="#0099FF”><tablewidth=”800”height="425"border="0"align="center"cellspacing=”0"><tr〉〈tdwidth="800"height=”351"valign="top"〉〈palign=”center"〉<fontcolor="#FFFF00"〉欢迎您:〈/font><fontcolor="#FF0000"〉<%=request.form("name")%></font><fontcolor="#FFFF00"〉登录班级学习管理系统!今天是〈/font〉〈%=date()%〉<fontcolor=”#FFFF00">祝您心情愉快!</font></p>〈palign="center”><imgsrc=”img/line023.gif"width="100%”height=”3”〉</p><palign=”center"〉&nbsp;</p><palign="center"〉您可以进入以下系统:〈/p〉<palign="center”〉<strong>〈fontcolor="#FF0000"size=”5”face="隶书">〈/font>〈/strong>〈fontcolor="#FF0000"size=”5”face="隶书”><strong><ahref="xscx。asp"〉学生查询系统</a>〈/strong〉</font><fontsize=”5"><strong><fontcolor=”#FF0000”face=”隶书">〈ahref="xkcx。asp"〉选课查询系统〈/a〉〈/font></strong></font〉</p>〈palign=”center">〈fontsize="5”><strong><fontcolor="#FF0000"face=”隶书"〉〈ahref="jscx.asp"〉教师查询系统</a></font>〈/strong><strong><fontcolor="#FF0000"face=”隶书">〈ahref="cjcx.asp"〉成绩查询系统</a〉〈/font>〈/strong></font>〈/p><palign=”center">&nbsp;</p><palign=”center”>&nbsp;</p><palign="center">请选择</p></td></tr></table><p>&nbsp;</p>〈/BODY></HTML〉〈%endif%>3.学生查询系统:xscx。asp和xscxcheck.asp单击“学生查询系统”,可以进入该系统,在系统中,可以对该班级的学生情况进行查询,查询条件可以是student表中的所有字段,例如要查所有计算机系的学生情况,如图8-33所示。单击【确定】后,有关数据传送给xscxcheck.asp,得到的结果如图8—34所示。程序清单://xscx.asp<%@LANGUAGE=”VBSCRIPT"CODEPAGE=”936"%〉<html>〈head><metahttp-equiv=”Content-Type"content="text/html;charset=gb2312">〈title>无标题文档</title></head>〈bodybgcolor="#00CCFF"><divalign="center"〉<p〉&nbsp;〈/p〉<p〉〈fontcolor="#FF0000"size=”6"face=”隶书”>〈strong>欢迎光临学生查询系统〈/strong></font></p〉<p〉<imgsrc="img/line023.gif"width="520”height="3"></p>〈p〉请输入您的查询条件(下列条件之一)〈/p><formname="form1"method="post"action=”xscxcheck.asp"><p>学生姓名:〈inputtype="text”name="name"〉</p><p〉学生学号:<inputtype="text"name="no”>〈/p〉〈p>学生性别:<inputtype="text"name="sex"></p〉〈p>出生日期:〈inputtype=”text"name=”birthday"></p><p>所在系部:〈inputtype="text”name="department”></p〉<p〉<inputtype="submit"name="Submit"value="确定”〉<inputtype="submit"name=”Submit2”value="重写"></p>〈p>&nbsp;</p></form>〈p>〈imgsrc="img/line023.gif”width=”520"height="3"〉</p></div〉〈/body></html〉HYPERLINK”xscxcheck。asp.txt"xscxcheck.asp//xscxcheck。asp〈%@LANGUAGE="VBSCRIPT"CODEPAGE=”936"%><%setcn=server.createobject("adodb.connection”)cn.provider="sqloledb"yyy="server=aa007;database=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server.CreateObject(”adodb.recordset”)t1=request.form("name”)t2=request.form(”no")t3=request.form(”sex”)t4=request。form("birthday")t5=request.form("department”)sql=”select*fromstudentwheres_name='"&t1&”’ors_no='"&t2&"'ors_sex='”&t3&"'ors_birthday=’”&t4&”'ors_department=’"&t5&"'"setrs=cn。execute(sql)%〉<html〉<head><metahttp-equiv=”Content—Type"content="text/html;charset=gb2312"〉<title>无标题文档〈/title></head><bodybgcolor="#00FFFF”><p><strong>您要找的学生情况如下:</strong></p><p〉&nbsp;</p><%response.write"<center><tableborder=1>"fori=0tors.fields.count—1response.write"〈td〉”&rs.fields(i).name&"</td〉"nextresponse。write"</tr>"whilenotrs.eofresponse.write”〈tr>"fori=0tors。fields.count—1response.write"〈td〉”&rs.fields(i).value&”</td>"nextresponse。write"〈/tr>”rs.movenextwendresponse.write"</table>〈/center>”rs.close%>〈p>&nbsp;</p></body>〈/html〉4。选课查询系统:进入到选课查询系统中,输入某个学生的学号,可以查询该学生所选修的课程;输入课程号码,可以查看有哪些同学选修该门课程.程序运行结果如图8-35和图8-36所示。xkcx.asp//xkcx.asp〈%@LANGUAGE="VBSCRIPT"CODEPAGE="936”%><html>〈head>〈metahttp—equiv="Content-Type”content="text/html;charset=gb2312”><title>无标题文档〈/title〉</head〉<bodybgcolor="#00CCFF"〉〈divalign="center”><p>&nbsp;</p〉<p>〈fontcolor="#FF0000”size="6"face="隶书”〉<strong〉欢迎光临选课查询系统</strong〉</font></p>〈p><imgsrc="img/line023。gif"width=”520"height="3"></p>〈p>请输入您的查询条件(下列条件之一)〈/p>〈formname=”form1”method=”post"action="xkcxcheck.asp”><p>&nbsp;</p〉<p>学生学号:〈inputtype="text"name="no"></p〉<p>课程名称:〈inputtype="text”name=”cno">〈/p>〈p〉&nbsp;〈/p〉<p><inputtype="submit"name="Submit"value="确定”><inputtype="submit”name=”Submit2"value=”重写">〈/p><p〉&nbsp;〈/p></form〉<p><imgsrc=”img/line023.gif”width=”520"height="3"></p>〈/div〉</body></html>HYPERLINK"xkcxcheck.asp.txt"xkcxcheck.asp//xkcxcheck.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE="936”%><%setcn=server。createobject(”adodb.connection”)cn.provider=”sqloledb"yyy=”server=aa007;database=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server。CreateObject("adodb。recordset")t1=request.form("no”)t2=request.form("cno”)sql="select*fromchoicewheres_no='”&t1&"'orc_no='”&t2&”'”setrs=cn.execute(sql)%>〈html><head〉<metahttp—equiv="Content—Type”content="text/html;charset=gb2312"><title>无标题文档〈/title>〈/head〉〈bodybgcolor=”#00FFFF">〈palign="center"><strong>您查找的选课资料如下:</strong></p〉<divalign=”center"〉<%response.write"<center><tableborder=1>”fori=0tors。fields.count—1response.write”〈td〉"&rs.fields(i).name&"〈/td>"nextresponse.write"</tr>"whilenotrs。eofresponse。write"<tr>"fori=0tors。fields.count—1response.write"<td〉”&rs。fields(i).value&"</td>"nextresponse。write"〈/tr>"rs.movenextwendresponse。write"</table〉</center>"rs.close%></div>〈p>&nbsp;</p></body>〈/html>5.教师查询系统:进入到教师查询系统中,输入某个教师的有关资料,就可以查出该教师的基本情况.查询条件可以teacher表中所有字段.程序运行和结果如图8—37和图8—38所示。//jscx。asp<%@LANGUAGE=”VBSCRIPT"CODEPAGE="936”%><html><head>〈metahttp-equiv="Content-Type"content="text/html;charset=gb2312”>〈title〉无标题文档</title〉</head><bodybgcolor="#00CCFF”><divalign="center”><p><fontcolor="#FF0000”size="6"face="隶书">〈strong>欢迎光临教师查询系统〈/strong></font></p>〈p><imgsrc="img/line023。gif”width="520"height="3”〉</p>〈p>请输入您的查询条件(下列条件之一)〈/p>〈f="form1”method=”post"action="jscxcheck.asp”>〈p>教师姓名:〈inputtype=”text"name="name">〈/p><p〉教师编号:<inputtype="text"name="no"></p><p>教师性别:<inputtype="text"name="sex”>〈/p>〈p〉教师职称:<inputtype="text"name=”duty”></p〉<p><inputtype="submit"name=”Submit"value=”确定">〈inputtype=”reset"name="Submit2"value=”重写"></p〉〈p〉〈imgsrc="img/line023.gif"width=”520"height="3"></p>〈/form></div></body〉〈/html>//jscxcheck.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE=”936”%〉<%setcn=serve”sqloledb"yyy=”server=aa007;database=teachdb;uid=sa;pwd=sa;”cn.openyyysetrs=server.CreateObject(”adodb。recordset")t1=request.form("name")t2=request.form("no")t3=request。form("sex”)t4=request。form("duty")sql="select*fromteacherwheret_name='"&t1&”'ort_no='”&t2&”'ort_sex='"&t3&”'ort_duty='"&t4&”’”setrs=cn。execute(sql)%><html>〈head><metahtt

温馨提示

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

评论

0/150

提交评论