SQLServer数据库应用系统的开发.ppt_第1页
SQLServer数据库应用系统的开发.ppt_第2页
SQLServer数据库应用系统的开发.ppt_第3页
SQLServer数据库应用系统的开发.ppt_第4页
SQLServer数据库应用系统的开发.ppt_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

重庆IT论坛,第11章数据库应用系统的开发,11.1软件开发周期及各阶段的任务,11.2数据库应用系统,11.3创建应用系统数据库,11.4VB/SQLServer学生成绩管理系统,11.5ASP.NET(C#)/SQLServer学生成绩管理系统,海量IT技术教程下载,重庆IT论坛,11.1软件开发周期及各阶段的任务,11.1.1软件定义开发一个数据库应用系统首先要进行用户的需求分析,确定软件系统的功能、性能需求,搞清楚“做什么”。首先,进行软件系统的可行性研究。其次,进行软件需求分析。软件需求分析的目标是深入描述待开发数据库应用软件的功能、性能需求、数据的安全与完整性约束等方面的需求,及与其他系统元素的接口。1需求分析的主要任务通过调查软件使用部门的业务活动,明确用户对软件系统的功能需求,确定待开发软件系统的功能。综合分析用户的信息流程及信息需求,确定将存储哪些数据,及这些数据的源和目标。分析用户对数据的安全性和完整性要求,确定系统的性能需求和运行环境约束。构建软件系统的逻辑模型,为软件要素制定验收准则,以及软件验收测试计划。对于大型、复杂软件系统的主要功能、接口、人机接口等,可能还要进行模拟或建造原型,以便向用户和开发方展示待开发软件系统的主要特征,软件需求分析过程有时需要反复多次,最终才能使用户与开发者达成共识。,重庆IT论坛,11.1.1软件定义,2软件需求信息获取考察现场或跟班作业,了解现场业务流程。进行市场调查。访问用户和应用领域的专家。查阅与原应用系统或应用环境有关的记录。3用户需求的描述方法描述用户需求传统的方法大多采用结构化的分析方法(StructuredAnalysis,SA),即按应用部门的组织结构,对系统内部的数据流进行分析,逐层细化,用数据流程图(DataFlowDiagram,DFD)描述数据在系统中的流动和处理,并建立相应的数据字典(DataDictionary,DD)。数据流程图使用的主要符号如图11.1所示。,图11.1数据流程图使用的主要符号,重庆IT论坛,11.1.1软件定义,图11.2为学生选课系统需求分析顶层数据流程图,图11.3为第二层的数据流程图,图11.4是对图11.3中的“查询”进一步细化的数据流程图。在需求分析过程中数据流程图的细化程度取决于后继代码实现的需要,有兴趣的同学可对图11.3中的“编辑”和“统计”进一步细化。,图11.2学生选课系统需求分析的顶层数据流程图,重庆IT论坛,11.1.1软件定义,数据字典的主要内容。数据项:包括数据项名、类型、长度等。数据结构:反映了数据之间的组合关系,包括数据结构名、含义说明及定义。数据流:数据流是数据在系统内传输的路径,包括数据流名、说明、数据的源和目标等。数据存储:是数据停留或保存的地方,包括数据存储名、说明等。处理过程:主要包括:过程名、输入参数、输出参数、说明等。,图11.3学生选课系统需求分析的第二层数据流程图,重庆IT论坛,11.1.1软件定义,图11.4对图11.3中的“查询”进一步细化的数据流程图,重庆IT论坛,11.1.2软件开发,1概要设计概要设计又称为总体设计,是对需求规格说明中提供的软件系统逻辑模型进一步分解,其完成的主要工作有:数据建模。将应用需求中的数据对象、对象的属性、对象之间的联系抽象为信息世界的概念模型,并对其进行描述,例如,用E-R模型描述学生管理系统的概念模型。在软件的功能设计方面,建立软件系统的总体结构和各子系统之间、各模块之间的关系,定义各子系统接口和各功能模块的接口。生成概要设计规格说明和组装测试计划。评审概要设计的质量,重点评审概要设计是否支持软件需求规格说明。进一步充实数据字典。概要设计的目标:总体结构具有层次性,尽量降低模块接口的复杂度。进行概要设计时,可提出多种设计方案,并在功能、性能、成本、进度等方面对各种方案进行比较,选出一种“最佳方案”。概要设计的阶段性成果:概要设计说明书、数据库的概念模型设计、扩充后的数据字典、组装测试计划等文档。,重庆IT论坛,11.1.2软件开发,2详细设计详细设计又称为过程设计。通过对概要设计的模型表示进一步细化和转换,得到软件详细的数据结构和算法。详细设计的主要内容如下:对于数据建模,根据概念模型设计数据库的逻辑模型,根据系统对数据安全性和完整性的要求,确定数据的完整性和安全性规则及实现策略;在功能设计方面采用结构化的设计方法对概要设计产生的功能模块进一步细化,形成可编程的结构模块,并设计各模块的单元测试计划。详细设计的阶段性成果:详细设计规格说明书、单元测试计划等设计文档。3编码与单元测试主要任务包括如下内容:基于某一数据库管理系统实现数据库的逻辑模型,如创建数据库、表等,按照数据的完整性和安全性实现策略,实现数据的完整性和安全性,并进行相应的测试工作,同时做好测试记录;选定某一程序设计语言实现各功能模块,并进行相应的测试。一般来说,对软件系统各功能模块所采用的分析方法、设计方法、编程方法,以及所选用的程序设计语言应尽可能保持一致。,重庆IT论坛,11.1.2软件开发,编码阶段应注意遵循编程标准、养成良好的编程风格,以便编写出正确的便于理解、调试和维护的程序模块。编码与单元测试的阶段性成果:通过单元测试的各功能模块的集合、详细的单元测试报告等文档。4组装测试根据概要设计提供的软件结构、各功能模块的说明和组装测试计划,将数据加载到数据库中,对经过单元测试检验的模块按照某种选定的策略逐步进行组装和测试,检验应用系统在正确性、功能完备性、容错能力、性能指标等方面是否满足设计要求。阶段性成果:满足概要设计要求的详细设计报告;可运行的软件系统和源程序清单;组装测试报告等文档。5验收测试又称为确认调试,主要任务:按照验收测试计划对软件系统进行测试,检验其是否达到了需求规格说明中定义的全部功能和性能等方面的需求。阶段性成果:验收测试报告、项目开发总结报告、软件系统、源程序清单、用户操作手册等文档资料。最后,由专家、用户负责人、软件开发和管理人员组成软件评审小组对软件验收测试报告、测试结果和应用软件系统进行评审,通过后,软件产品正式通过验收,可以交付用户使用。,重庆IT论坛,11.1.3软件的使用与维护,软件开发工作结束后,软件系统即可投入运行,但由于软件的应用环境不断变化,因此,在软件的整个运行期内,有必要对应用系统有计划地维护,使软件系统持久地满足用户的需求。软件使用和维护阶段的主要工作内容如下:在软件使用过程中,及时收集被发现的软件错误,并撰写“软件问题报告”,以便改正软件系统中潜藏的错误;根据数据库维护计划,对数据库性能进行监测,当数据库出现故障时,对数据库进行转储和恢复,并做相应的维护记录;根据软件系统恢复计划,当软件系统出现故障时,进行软件系统恢复,并做相应的维护记录。,重庆IT论坛,11.2数据库应用系统,11.2.1数据库的连接方式客户端应用程序或应用服务器向数据库服务器请求服务时,首先必须和数据库建立连接。虽然RDBMS都遵循SQL标准,但不同厂家开发的数据库管理系统有差异,存在适应性和可移植性等方面的问题,因此,人们开始研究和开发连接不同RDBMS的通用方法、技术和软件。1ODBC数据库接口ODBC即开放式数据库互连(OpenDatabaseConnectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。符合标准的数据库就可以通过SQL语言编写的命令对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准(如SQLServer,Oracle,Access,Excel等)。ODBC本质上是一组数据库访问API(应用程序编程接口),由一组函数调用组成,核心是SQL语句,其结构如图11.5所示。,重庆IT论坛,11.2.1数据库的连接方式,图11.5ODBC数据库接口,重庆IT论坛,11.2.1数据库的连接方式,2OLEDB数据库接口OLEDB即数据库链接和嵌入对象(ObjectLinkingandEmbeddingDataBase)。OLEDB是微软提出的基于COM思想且面向对象的一种技术标准,目的是提供一种统一的数据访问接口访问各种数据源,这里所说的“数据”除了标准的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服务(DirectoryServices),以及主机系统中的文件和地理数据和自定义业务对象等。OLEDB标准的核心内容就是提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型,其结构图如图11.6所示。,图11.6OLEDB数据库接口,重庆IT论坛,11.2.1数据库的连接方式,3ADO数据库接口ADO(ActiveXDataObjects)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。图11.7展示了应用程序通过ADO访问SQLServer数据库接口。从图中可看出,使用ADO访问SQLServer数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过SQLServer专用的OLEDBProvider,后者有更高的访问效率。,图11.7ADO访问SQLServer的接口,重庆IT论坛,11.2.1数据库的连接方式,4ADO.NET数据库接口ASP.NET使用ADO.NET数据模型。该模型从ADO发展而来,但它不只是对ADO的改进,而是采用了一种全新的技术。主要表现在以下3个方面:ADO.NET不是采用ActiveX技术,而是与.NET框架紧密结合的产物。ADO.NET包含对XML标准的完全支持,这对于跨平台交换数据具有重要的意义。ADO.NET既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。ADO.NET提供了面向对象的数据库视图,并且在ADO.NET对象中封装了许多数据库属性和关系。最重要的是,ADO.NET通过很多方式封装和隐藏了很多数据库访问的细节。可以完全不知道对象在与ADO.NET对象交互,也不用担心数据移动到另外一个数据库,或者从另一个数据库获得数据的细节问题。ADO.NET架构如图11.8所示。数据集是实现ADO.NET断开式连接的核心,从数据源读取的数据先缓存到数据集中,然后被程序或控件调用。数据源可以是数据库或者XML数据。,重庆IT论坛,11.2.1数据库的连接方式,数据提供器用于建立数据源与数据集之间的联系,它能连接各种类型的数据,并能按要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后的数据。,图11.8ADO.NET架构总览,重庆IT论坛,11.2.1数据库的连接方式,5JDBC数据库接口JDBC(JavaDataBaseConnectivity)是JavaSoft公司开发的,一组Java语言编写的用于数据库连接和操作的类和接口,可为多种关系数据库提供统一的访问方式。通过JDBC完成对数据库的访问包括4个主要组件:Java应用程序、JDBC驱动管理器、驱动器和数据源。在JDBCAPI中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序的所有通信。使用JDBC接口对数据库操作有如下优点:.JDBCAPI与ODBC十分相似,有利于用户理解;使编程人员从复杂的驱动器调用命令和函数中解脱出来,而致力于应用程序功能的实现;JDBC支持不同的关系数据库,增强了程序的可移植性。使用JDBC的主要缺点:访问数据记录的速度会受到一定影响,此外,由于JDBC结构中包含了不同厂家的产品,这给数据源的更改带来了较大麻烦。6数据库连接池技术对于网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大成为制约大型企业级应用效率的瓶颈,采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。,重庆IT论坛,11.2.2客户/服务器(C/S)模式,对于一般的数据库应用系统,除了使用数据库管理系统外,需要设计适合普通人员操作数据库的应用程序。目前,流行的开发数据库应用程序的工具主要包括VisualBASIC,VisualC+,VisualFoxPro,Delphi,PowerBuilder等。数据库应用程序与数据库、数据库管理系统之间的关系如图11.9所示。,图11.9数据库应用程序与数据库、数据库管理系统之间的关系,重庆IT论坛,11.2.3浏览器/服务器(B/S)模式,基于Web的数据库应用采用浏览器/服务器模式,也称B/S结构。第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。浏览器是用户输入数据和显示结果的交互接口,用户在浏览器窗体中输入数据,然后将窗体中的数据提交并发送到Web服务器,Web服务器应用程序接受并处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)送Web服务器,Web服务器把返回的结果插入HTML页面,传送到客户端,在浏览器中显示出来,如图1.10所示。,图11.10浏览器/服务器结构,重庆IT论坛,11.3创建应用系统数据库,11.3.1学生成绩数据库表结构学生成绩数据库XSCJ使用的表结构如下。1学生信息表(XS)学生信息表(XS)存放学生的基本信息。学生的基本信息表结构字段说明见表11.1。,表11.1学生的基本信息表字段说明,2课程信息表(KC)课程信息表(KC)存放课程的基本信息,课程的基本信息表结构字段说明见表11.2。,表11.2课程的基本信息表字段说明,重庆IT论坛,11.3.1学生成绩数据库表结构,3学生课程成绩表(XSKE)学生课程成绩表(XSKE)存放学生课程的成绩信息,学生课程的成绩表结构字段说明见表11.3。,表11.3学生课程的成绩表字段说明,重庆IT论坛,11.3.2学生成绩数据库数据样本,1学生信息表(表名XS)数据样本,2课程表(表名KC)数据样本,重庆IT论坛,11.3.2学生成绩数据库数据样本,3学生与课程表(表名XS_KC)数据样本,重庆IT论坛,11.4VB/SQLServer学生成绩管理系统,11.4.1连接SQLServer数据库1通过ODBC连接SQLServer数据库数据库管理器是VB6.0环境下可视化管理数据库的工具,下面介绍如何通过数据库管理器以ODBC方式连接SQLServer。(1)创建ODBC数据源首先在“控制面板”的“管理工具”中创建ODBC数据源,方法如下。在“控制面板”的“管理工具”中选择“ODBC数据源”图标双击,出现如图11.11所示的接口,在图中单击“添加”按钮,进入如图11.12所示的接口。,图11.11ODBC数据源接口图11.12安装数据源驱动程序的接口,重庆IT论坛,11.4.1连接SQLServer数据库,在图11.12的接口中,选择安装的驱动程序为“SQLServer”,单击“完成”按钮,出现如图11.13所示的接口。,图11.13安装数据源驱动程序的接口,重庆IT论坛,11.4.1连接SQLServer数据库,在图11.13中,单击“下一步”按钮,出现如图11.14所示的接口。,图11.14选择SQLServer服务器登录认证方式的接口,重庆IT论坛,11.4.1连接SQLServer数据库,在图11.14所示的接口中,选择SQLServer服务器登录认证方式,在此选择为SQLServer认证方式,并输入用户登录账号和密码,本例中以系统管理员身份sa登录。执行“下一步”,出现如图11.15所示的接口。在如图11.15所示的接口中,可更改默认的数据库,在此设置默认数据库为XSCJ,然后按照提示完成剩余工作。(2)连接SQLServer数据库创建ODBC数据源后,即可通过VB6.0提供的数据库管理器,连接SQLServer数据库,使用步骤如下。在VB接口中,执行“外接程序”菜单的“可视化数据管理器”命令。在“文件”菜单中执行“新建”可新建数据库,执行“打开”可打开指定的数据库,在此,执行以“ODBC”方式打开XSCJ数据库,执行结果如图11.16所示。,重庆IT论坛,11.4.1连接SQLServer数据库,图11.15选择默认数据库的接口,重庆IT论坛,11.4.1连接SQLServer数据库,图11.16通过数据管理器连接XSCJ数据库,重庆IT论坛,11.4.1连接SQLServer数据库,在如图11.6所示的接口中,可在数据库中创建表、对表中的数据进行查询、插入、删除、修改操作。在SQL文本框中,可输入SQL语句,并单击中“执行”按钮执行。2通过OLE连接SQLServer数据库数据环境设计器(DataEnvironment)是用于建立数据库连接和定义命令的图形接口,下面介绍数据环境设计器下通过OLE建立与SQLServer数据库的连接。(1)给工程添加数据环境设计器在VB接口的工程菜单中选择“添加DataEnvironment”菜单项,出现如图11.17所示的接口,在属性窗口可修改默认的数据环境对象名;(2)通过OLE建立与数据库的连接在图11.17的Connection对象图标上右击,出现一快捷菜单,选择“属性”菜单项,出现如图11.18所示的接口。在图11.18中,对于“提供者”选项卡,选择“MicrosoftOLEDBProviderforSQLServer”;对于“连接”选项卡,设置各项连接属性,“在服务器上选择数据库”下拉表中选择指定的数据库。如图11.19所示,单击“测试连接”按钮,测试成功,则建立了与数据库的连接。,重庆IT论坛,11.4.1连接SQLServer数据库,图11.17数据环境设计器的接口,重庆IT论坛,11.4.1连接SQLServer数据库,图11.18建立数据库连接的接口,重庆IT论坛,11.4.1连接SQLServer数据库,图11.19设置数据库连接属性的接口,重庆IT论坛,11.4.1连接SQLServer数据库,3ADOData和ADODB连接SQLServer数据库(1)用可视ADODC控件连接数据库在VB选“工程”菜单“部件”菜单项,系统打开“部件”对话框,如图11.20所示。,图11.20“部件”对话框,重庆IT论坛,11.4.1连接SQLServer数据库,选择两个ADO控件,他们是“MicrosoftADODataControl6.0”和“MicrosoftDataGridControl6.0”。最后单击“确定”按钮,此后VB6.0工具栏中就增加了上述两个控件的图标。前者用于连接数据库,后者用于以表格形式显示数据库表的内容。在VB窗体中加入“MicrosoftADODataControl6.0”控件(简称ADODC),命名合适的名称,如StuADO。设置控件ADODC的ConnectionString属性。选择该属性,如图11.21所示。单击“”,系统打开对话框,如图11.22所示。单击“生成”,系统显示“数据链接属性”对话框,如图11.23所示。选择“连接”选项卡,进行设置。最后单击“确定”按钮。设置ADODC的RecordSource属性。打开“属性页”,如图11.24所示。,重庆IT论坛,11.4.1连接SQLServer数据库,图11.21设置ConnectionString属性图图11.22生成连接字符串,重庆IT论坛,11.4.1连接SQLServer数据库,图11.23“数据链接属性”对话框图11.24属性页,重庆IT论坛,11.4.1连接SQLServer数据库,选择命令类型:1-adCmdText:表示命令为SQL语句。2-adCmdTable:表示命令为一个表名。4-adCmdStoredProc:表示命令是一个存储过程名。8-adCmdUnknown:表示不确定命令类型。如果命令类型为表名或存储过程名,则选择对应的名称,否则在命令文本中写入SQL语句。最后单击“确定”按钮。数据源控件连接数据库完成。此时可以直接访问它,或者可以充当数据表格控件的数据源使用。(2)ADODB.CONNECTION对象连接数据库创建ADODB.CONNECTION对象:PrivateSqlConAsNewADODB.ConnectionSqlCon.Provider=SQLOLEDBSqlCon.OpenServer=microsof-cee903dcr;DataBase=XSCJ;UID=wmx;PWD=1234;用ADODB.CONNECTION对象:PrivateSqlCmdAsNewADODB.Command指定Command对象所使用的连接SqlCmd.ActiveConnection=SqlConSqlCmd.CommandText=select*fromXS执行命令SetSqlRes=SqlCmd.Execute,重庆IT论坛,11.4.2学生成绩管理系统主接口,本系统是一个用VB实现的简单的学生成绩管理系统,使用可视ADODC控件和ADODB对象来访问后台数据库服务器,系统包含学生信息的查询、学生信息的录入修改删除、学生成绩的录入修改。系统主页面如图11.25所示。主要功能:主接口,导航作用,单击可进入操作窗口。创建过程:,图11.25系统主接口,重庆IT论坛,11.4.2学生成绩管理系统主接口,1创建菜单创建菜单如图11.26所示。,图11.26创建菜单,重庆IT论坛,11.4.2学生成绩管理系统主接,2创建工具条创建工具条如图11.27所示。,图11.27创建工具条,创建工具条包括:先创建工具条,创建ImageList控件,导入图标,最后与菜单关联。功能包括:退出系统、学生信息查询、学生信息修改、学生成绩修改等。其index分别为3,6,7,8。,重庆IT论坛,11.4.2学生成绩管理系统主接,3主要代码菜单Click的处理过程退出系统菜单PrivateSubmsQuitSys_Click()EndEndSub学生信息修改菜单PrivateSubmsStuInfo_Click()AddStu.ShowEndSub学生成绩录入菜单PrivateSubmsStuScore_Click()AddStuScore.ShowEndSub学生信息查询菜单PrivateSubmsStuSearch_Click()StuSearch.ShowEndSub,重庆IT论坛,11.4.2学生成绩管理系统主接,工具条Click的处理单击工具条的图标,分别对应调用菜单中的处理过程。PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)学生信息查询图标IfButton.Index=6ThenmsStuSearch_ClickEndIf学生信息修改图标IfButton.Index=7ThenmsStuInfo_ClickEndIf学生成绩修改图标IfButton.Index=8ThenmsStuScore_ClickEndIf退出系统图标IfButton.Index=3ThenmsQuitSys_ClickEndIfEndSub,重庆IT论坛,11.4.3学生信息查询,目的与要求:了解使用控件如何显示数据库中的数据,同时了解查询的基本方法。程序接口:程序接口如图11.28所示。,图11.28程序接口,重庆IT论坛,11.4.3学生信息查询,主要功能:可以满足简单查询的需要,什么条件也不输则分页显示所有记录,可以输入条件进行简单的模糊查询,各条件之间为与的关系,在查询的结果中移动记录指针可以查看这个学生的具体选课信息。创建过程:在窗体上放入学生信息查询的ADODC和学生选课信息的ADODC、创建两个学生信息显示的DataGrid和学生选课信息显示的DataGrid,并分别起名为StuADO,StuKCADO,StuDG,StuKCDG。放入学号Edit、姓名Edit和专业下拉列表框。为了美观,StuKCADO隐藏在StuKCDG后面。设置StuADO的ConnectionString属性为:Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=XSCJ;DataSource=microsof-cee903dcr设置StuADO的RecordSource属性为:select*fromXS,CXBwhereXS.XB=CXB.XB设置StuDG的DataSource属性为StuADO。,重庆IT论坛,11.4.3学生信息查询,设置StuKCADO的ConnectionString属性为:Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=XSCJ;DataSource=microsof-cee903dcr设置StuKCADO的RecordSource属性为:select*fromXS,KC,XS_KCwhereXS.XH=XS_KC.XHandKC.KCH=XS_KC.KCH设置StuKCDG的DataSource属性为StuKCADO。实现过程:直接打开时由于控件属性的设置,所以显示所有记录,当输入查询条件时单击查询按钮,则调用MMakeSqlStr函数产生查询字符串,然后重新设置控件的属性,打开控件显示查询结果集。当专业改变时调用StuZY_Click函数来分别显示所选的专业学生记录,当在查询结果学生信息记录集中移动记录指针时,可以在下面的选课表中看到学生选课的信息。,重庆IT论坛,11.4.3学生信息查询,主要代码:根据学号、姓名的输入信息和专业的选择生成模糊查询的SQL字符串。DimSqlStrAsString保存查询字符串的PublicSubMakeSqlStr()产生查询字符串的SqlStr=IfTrim(StuXH)ThenSqlStr=andXHlike%+Trim(StuXH.Text)+%EndIfIfTrim(StuXM)ThenSqlStr=SqlStr+andXMlike%+Trim(StuXM.Text)+%EndIfIfTrim(StuZY)所有专业ThenSqlStr=SqlStr+andZY=+Trim(StuZY.Text)+EndIfEndSub,重庆IT论坛,11.4.3学生信息查询,“专业”列表Click事件处理。显示选择当前专业,并且符合学号、姓名查询条件的学生的信息。PrivateSubStuZY_Click()当专业改变时重新从数据库中提取数据MakeSqlStrStuADO.RecordSource=select*fromXS,CXBwhereXS.XB=CXB.XB_IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=XSCJ;DataSource=microsof-cee903dcr设置StuADO的RecordSource属性为:select*fromXS,CXBwhereXS.XB=CXB.XB设置StuDG的DataSource属性为StuADO。在窗体上放入Image控件并起名为StuPic,用来显示学生照片,选择Image控件的DataSource属性为StuADO,设置DataField属性为ZP,这就完成了Image控件和数据库的绑定,记录集移动时Image里面会显示当前学生的照片。,重庆IT论坛,11.4.4学生信息修改,并在窗体上放入如图所需控件。实现过程:当单击DataGrid中的记录时记录集游标也跟着移动,在StuADO_MoveComplete事件中取出本条记录显示在上面的控件中,可以在控件中修改学生信息,双击选择学生照片,按更新调用StuUpd_Click更新到数据库中,当输入新的学生记录时按更新调用StuUpd_Click添加到数据库中,也可以按删除调用StuDel_Click函数删除此记录,系统会调用CheckXs触发器来保持数据的参照完整性。1SQLServer数据库中定义的触发器为了保证数据的参照完整性,在删除学生时要检查成绩表中此学生的记录,有就删除。此过程放在触发器中完成的。CREATETRIGGERCheckXsONdbo.XSFORDELETEASdeletefromXS_KCwhereXHin(selectXHfromdeleted),重庆IT论坛,11.4.4学生信息修改,2VB主要代码General中定义的全局变量PrivateFileNameAsStringPrivateSqlConAsNewADODB.ConnectionPrivateSqlResAsNewADODB.RecordsetPrivateSqlCmdAsNewADODB.CommandForm加载时打开数据库连接PrivateSubForm_Load()SqlCon.Provider=SQLOLEDBSqlCon.OpenServer=microsof-cee903dcr;DataBase=XSCJ;UID=wmx;PWD=1234;EndSubForm卸载时关闭数据库连接PrivateSubForm_Unload(CancelAsInteger)SqlCon.CloseEndSub,重庆IT论坛,11.4.4学生信息修改,学生信息记录集记录指针移动完成事件代码当单击StuADO控件记录移动图标时产生,在这个过程中取出当前记录中的学生信息,更新到学号、姓名等显示控件中去,实现显示和StuADO控件记录移动连动。PrivateSubStuADO_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)IfNotpRecordset.EOFAndNotpRecordset.BOFThenStuXH.Text=pRecordset(XH)StuXM.Text=pRecordset(XM)StuCSSJ.Text=pRecordset(CSSJ)StuZY.Text=pRecordset(ZY)StuZXF.Text=pRecordset(ZXF)StuBZ.Text=CStr(pRecordset(BZ)updateXS_KCsetXF=0whereCJ=60ENDGO,重庆IT论坛,11.4.5学生成绩的录入,(2)VB中的主要代码General中定义的全局变量。PrivateSqlConAsNewADODB.ConnectionPrivateSqlResAsADODB.RecordsetPrivateSqlCmdAsNewADODB.CommandForm加载时打开数据库连接,并且通过执行select语句从数据库中提取课程名添加到课程下拉列表中,执行GetStuZy存储过程,把返回的专业添加到专业下拉列表中,在DataGrid中显示当前专业,当前课程的学生、成绩信息,方便修改。,Form卸载时关闭数据库连接。PrivateSubForm_Unload(CancelAsInteger)SqlRes.CloseSqlCon.CloseEndSub,重庆IT论坛,11.4.5学生成绩的录入,StuADO移动记录完成的时候,在学号、姓名、成绩、学分等显示控件中显示当前学生的当前课程的成绩信息。PrivateSubStuADO_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)IfNotpRecordset.EOFAndNotpRecordset.BOFThenStuXH.Text=pRecordset(XH)StuXM.Text=pRecordset(XM)StuCJ.Text=pRecordset(CJ)StuXF.Text=CStr(pRecordset(XF)设置其ConnectionString属性为:DataSource=microsof-cee903dcr;InitialCatalog=XSCJ;DataBase=XSCJ;UID=wmx;PWD=1234;IntegratedSecurity=True最后conn.Open()就打开这个连接了,Command,DataReader的对象通过这个对象连接数据库,记住最后要用conn.Close关闭这个连接。,重庆IT论坛,11.5.1ADO.NET连接数据库,ConnectionString包含的主要参数有:DataSource。设置需连接的数据库服务器名。InitialCatalog。设置连接的数据库名称。IntegratedSecurity。服务器的安全性设置,是否使用信任连接。值有True,False和SSPI三种,True和SSPI都表示使用信任连接。WorkstationId。数据库客户端标识,默认为客户端计算机名。PacketSize。获取与SQLServer通信的网络数据包的大小,单位为字节,有效值为51232767,默认值为8192。UserID。登录SQLServer的账号。Password(Pwd)。登录SQLServer的密码。ConnectionTimeout。设置SqlConnection对象连接SQL数据库服务器的超时时间,单位为秒,若在所设置的时间内无法连接数据库,则返回失败,默认为15秒。,重庆IT论坛,11.5.2主程序接口,本系统是一个用VS.NET平台,开发基于C#脚本实现的ASP.NET的简单的网上学生成绩管理系统,使用ADO.NET访问后台数据库服务器,包含学生信息的查询、录入、修改、删除页面,学生成绩的录入、修改页面。学习这个内容应该已经有一定的VS.NET基础知识,所以创建工程等步骤不说明,重点说明各模块和数据库操作的具体实现,主要介绍数据绑定和ADO.NET对象直接编程的方法。目的要求:掌握ASP.NET超链接方法。程序接口:主程序接口如图11.42所示。实现功能:导航栏的作用,可以连接到各个操作页面。实现过程:新建一个Default.aspx页面,在这个页面上创建4个Image和4个HyperLink,分别用于显示图标和生成链接,HyperLink的NavigateUrl属性分别为要跳到的页面,如图11.43所示,这里分别跳转到StuInfo.aspx、StuScore.aspx、StuUpdate.aspx、AddScore.aspx。,重庆IT论坛,11.5.2主程序接口,图11.42主程序接口图11.43NavigateUrl属性,重庆IT论坛,11.5.3学生信息查询,目的要求:实现SqlDataSource和GridView绑定关联来实现数据的查询。程序接口:学生信息查询程序接口如图11.44所示。实现功能:可以满足简单查询的需要,什么条件也不输入则分页显示所有记录。可以输入条件进行简单的模糊查询,各条件之间为与的关系。在查询的结果中,点击“姓名”超链接查看这个学生的具体选课信息,点击“照片”可以查看此学生的照片。当记录条数超过一页,用户可以点击下面的分页号来翻阅记录页。创建过程:设置连接数据源。创建2个SqlDataSource,分别命名为SqlDataSource1,SqlDataSource2,其中,SqlDataSource1用来显示学生信息;SqlDataSource2用来显示专业下拉列表中的专业名。SqlDataSource1中的属性设置:可以用上面介绍的方法设置SqlDataSource1,同时保存连接XSCJConnectionString,方便下面使用。SelectQuery属性设置成SELECT*FROMXS。SqlDataSource2中的属性设置:,重庆IT论坛,11.5.3学生信息查询,图11.44数据的查询,重庆IT论坛,11.5.3学生信息查询,ConnectionString属性选择XSCJConnectionString。SelectQuery属性设置成SELECTDISTINCTZYFROMXS,这里是从XS表中查询专业信息,DISTINCT限定词是不重复的意思。创建“学号”输入文本框stuXH、“姓名”输入文本框stuXM,创建“专业”下拉列表stuZY和一个“查询”命令按钮Button。设置stuZY的DataSourceID属性为SqlDataSource2(与SqlDataSource2绑定)。设置DataTextField为ZY,DataValueField为ZY,这样运行后stuZY下拉列表中就显示XS表中的专业信息。创建GridView控见来显示查询的学生信息。从工具箱中拖GridView控件到编辑接口中,这时会出现如图11.45所示的设置接口。,图11.45设置接口,重庆IT论坛,11.5.3学生信息查询,选择数据源SqlDataSource1;再选择编辑列,这时出现如图11.46所示的配置接口。这时选择字段,编辑列属性,例如,将XH字段的HeaderText属性改成“学号”,这样便于查看,照此分别设定其他的列。因为姓名列要作为成绩和照片的超链接,所以把它们单独拿出来编辑,转换成TemplateField处理,如图11.47所示。,图11.46选择字段,重庆IT论坛,11.5.3学生信息查询,图11.47转换成TemplateField处理,重庆IT论坛,11.5.3学生信息查询,单击“确定”按钮,返回到编辑接口,在GridView上单击右键并选择编辑模板,如图11.48所示。,图11.48选择编辑模板,重庆IT论坛,11.5.3学生信息查询,进入模板编辑接口,去除原来的Label控件,放入两个HyperLink控件,如图11.49所示。,图11.49放入两个HyperLink控件,重庆IT论坛,11.5.3学生信息查询,在HyperLink上选择编辑DataBindings,如图11.50所示。,图11.50编辑DataBindings,重庆IT论坛,11.5.3学生信息查询,设置Text属性选择绑定到SqlDataSource的XM列上,设置NavigateURL为自定义绑定,表达式为StuScore.aspx?xh=+Eval(XH),如图11.51所示。这样,当点击这个超链接时会打开StuScore.aspx并把SqlDataSource当前记录的XH字段(因为XH能够唯一区分记录)作为参数传过去。,图11.51编辑DataBindings,重庆IT论坛,11.5.3学生信息查询,同样设定显示照片的HyperLink的属性为ShowPic.aspx?id=+Eval(XH),如图11.52所示。,图11.52编辑DataBindings,重庆IT论坛,11.5.3学生信息查询,同时设定HyperLink的Text为“照片”,结束模板编辑,修改GridView的PageSize属性,设置成10,每一页显示10条记录,这时出现定义GridView的样式如图11.53所示。,图11.53定义GridView的样式,重庆IT论坛,11.5.3学生信息查询,下面编写“查询”Button的响应代码。通过用户输入组成查询SQL语句,再通过SqlDataSource1的SelectCommand属性来告诉SqlDataSource,执行的SQL命令获取查询结果,显示在GridView中。主要代码如下:,重庆IT论坛,11.5.4学生成绩查询,目的要求:带参数的查询,DetailsView,GridView的使用。程序接口:学生成绩查询程序接口如图11.54所示。,图11.54学生成绩查询程序接口,重庆IT论坛,11.5.4学生成绩查询,实现功能:通过选择专业和学号来查询学生的课程成绩情况。创建过程:设计接口如图11.55所示。,图11.55查询学生的课程成绩设计接口,重庆IT论坛,11.5.4学生成绩查询,(1)创建3个SqlDataSource。SqlDataSource1创建显示当前学生所选择的课程成绩信息的数据源,输入的查询参数为学号。ConnectionString属性:选择XSCJConnectionString。SelectQuery属性:SELECTXS.XH,XS.XM,XS.XB,XS.CSSJ,XS.ZY,XS.ZXF,XS.BZ,XS.ZP,KC.KCH,KC.KCM,KC.XQ,KC.XS,KC.XF,XS_KC.XHASExpr1,XS_KC.KCHASExpr2,XS_KC.CJ,XS_KC.XFASExpr3FROMXSINNERJOINXS_KCONXS.XH=XS_KC.XHINNERJOINKCONXS_KC.KCH=KC.KCHWHERE(XS.XH=xh)这里有一个查询参数xh,设计接口如图11.56所示。,重庆IT论坛,11.5.4学生成绩查询,图11.56设计接口,重庆IT论坛,11.5.4学生成绩查询,设置其参数源为QueryString,从窗体数据的QueryString集合中取查询参数,QueryStringField为xh,即以QueryString(xh)值为查询参数。SqlDataSource2用来显示专业情况的数据源,专业从XS表中查询,注意DISTINCT参数,保证查询的专业不重复。ConnectionString属性:选择XSCJConnectionString。SelectQuery属性:SELECTDISTINCTZYFROMXSSqlDataSource3用来显示学号情况的数据源。ConnectionString属性:选择XSCJConnectionString。SelectQuery属性:SELECT*FROMXSWHERE

温馨提示

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

评论

0/150

提交评论