SQL_Server数据库应用系统的开发.ppt_第1页
SQL_Server数据库应用系统的开发.ppt_第2页
SQL_Server数据库应用系统的开发.ppt_第3页
SQL_Server数据库应用系统的开发.ppt_第4页
SQL_Server数据库应用系统的开发.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的通用方法 技术和软件 1 ODBC数据库接口ODBC即开放式数据库互连 OpenDatabaseConnectivity 是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准 符合标准的数据库就可以通过SQL语言编写的命令对数据库进行操作 但只针对关系数据库 目前所有的关系数据库都符合该标准 如SQLServer Oracle Access Excel等 ODBC本质上是一组数据库访问API 应用程序编程接口 由一组函数调用组成 核心是SQL语句 其结构如图11 5所示 重庆IT论坛 11 2 1数据库的连接方式 图11 5ODBC数据库接口 重庆IT论坛 11 2 1数据库的连接方式 2 OLEDB数据库接口OLEDB即数据库链接和嵌入对象 ObjectLinkingandEmbeddingDataBase OLEDB是微软提出的基于COM思想且面向对象的一种技术标准 目的是提供一种统一的数据访问接口访问各种数据源 这里所说的 数据 除了标准的关系型数据库中的数据之外 还包括邮件数据 Web上的文本或图形 目录服务 DirectoryServices 以及主机系统中的文件和地理数据和自定义业务对象等 OLEDB标准的核心内容就是提供一种相同的访问接口 使得数据的使用者 应用程序 可以使用同样的方法访问各种数据 而不用考虑数据的具体存储地点 格式或类型 其结构图如图11 6所示 图11 6OLEDB数据库接口 重庆IT论坛 11 2 1数据库的连接方式 3 ADO数据库接口ADO ActiveXDataObjects 是微软公司开发的基于COM的数据库应用程序接口 通过ADO连接数据库 可以灵活地操作数据库中的数据 图11 7展示了应用程序通过ADO访问SQLServer数据库接口 从图中可看出 使用ADO访问SQLServer数据库有两种途径 一种是通过ODBC驱动程序 另一种是通过SQLServer专用的OLEDBProvider 后者有更高的访问效率 图11 7ADO访问SQLServer的接口 重庆IT论坛 11 2 1数据库的连接方式 4 ADO 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数据库的连接方式 5 JDBC数据库接口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数据库 3 ADOData和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 SQLOLEDB SqlCon Open Server microsof cee903 dcr 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 cee903 dcr 设置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 cee903 dcr 设置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 SqlStr andZY Trim StuZY Text StuADO RefreshEndSub 查询 Click事件处理 用生成的模糊查询的SQL字符串 来刷新StuADO 并显示到关联的DataGrid中 PrivateSubStuSch Click 单击查询按钮从数据库中提取数据MakeSqlStrStuADO RecordSource select fromXS CXBwhereXS XB CXB XB SqlStrStuADO RefreshEndSub 重庆IT论坛 11 4 3学生信息查询 学生信息显示的DataGrid的Click事件处理 以当前学生信息的学号作为查询条件 从XS KC表中查找当前学生的选课记录 并显示到学生课程显示的StuKCDG中 PrivateSubStuDG Click 单击DataGrid中学生记录 在下面显示学生课程成绩StuKCADO RecordSource select fromXS KC XS KC WhereXS XH XS KC XHAndKC KCH XS KC KCH andXS XH StuADO Recordset XH StuKCADO RefreshEndSub注意 为了方便控件显示学生性别 这里建立了一个表CXB XBbit XBMvarchar 4 存放数据1 男 0 女 这样把要显示的表与其连接便可以显示中文的性别 如有类似情况可参照此方法 重庆IT论坛 11 4 4学生信息修改 目的要求 了解对数据库操作的基本方法 增 删 改 程序接口 程序接口如图11 29所示 图11 29程序接口 重庆IT论坛 11 4 4学生信息修改 主要功能 用户可以单击下面的表格 用户资料便反映到上面的控件中去 这时可以修改控件中的信息 单击更新实现修改 如输入一个新的学号 单击更新按钮实现记录的添加 当选中当前记录 单击删除按钮时 则可以删除此学生记录 双击照片可以选择学生照片 用于更新学生照片信息 创建过程 在窗体上放入ADODC DataGrid并起名为StuADO StuDG 设置StuADO的ConnectionString属性为 Provider SQLOLEDB 1 IntegratedSecurity SSPI PersistSecurityInfo False UserID sa InitialCatalog XSCJ DataSource microsof cee903 dcr 设置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触发器来保持数据的参照完整性 1 SQLServer数据库中定义的触发器为了保证数据的参照完整性 在删除学生时要检查成绩表中此学生的记录 有就删除 此过程放在触发器中完成的 CREATETRIGGER CheckXs ON dbo XS FORDELETEASdeletefromXS KCwhereXHin selectXHfromdeleted 重庆IT论坛 11 4 4学生信息修改 2 VB主要代码General中定义的全局变量PrivateFileNameAsStringPrivateSqlConAsNewADODB ConnectionPrivateSqlResAsNewADODB RecordsetPrivateSqlCmdAsNewADODB Command Form加载时打开数据库连接PrivateSubForm Load SqlCon Provider SQLOLEDB SqlCon Open Server microsof cee903 dcr DataBase XSCJ UID wmx PWD 1234 EndSub Form卸载时关闭数据库连接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 IfpRecordset XB 0ThenStuXBF Value TrueElseStuXBM Value TrueEndIfEndIfEndSub 重庆IT论坛 11 4 4学生信息修改 删除 Click事件处理代码从StuADO记录集中取出当前记录的学号 然后通过commad对象执行delete语句来删除当前的学生记录 delete语句的调用会引起CheckXs触发器的动作 PrivateSubStuDel Click IndexAsInteger Ret MsgBox 是否要删除 StuADO Recordset XH 号学生的记录 vbYesNo 提示 IfRet vbYesThenSqlCmd ActiveConnection SqlConSqlCmd CommandText deletefromXSwhereXH StuADO Recordset XH SqlCmd ExecuteStuADO RecordSource select fromXS CXBwhereXS XB CXB XB StuADO RefreshEndIfEndSub 重庆IT论坛 11 4 4学生信息修改 照片 DoubleClick事件的处理代码打开对话框 给用户选择照片 并显示在StuPic控件中 同时记录下选择的文件名和路径到全局FileName变量中 给后面的更新学生信息使用 PrivateSubStuPic DblClick 显示打开文件的公用对话框 选择需要加入数据库的图片CDlg Filter 位图 bmp bmp 图像 jpg jpg CDlg ShowOpenFileName CDlg FileNameStuPic Picture LoadPicture FileName 预览图片EndSub 读取照片数据的函数代码根据输入的照片的文件名 打开文件读入照片数据到数组中 然后通过AppendChunk函数把照片数据写入到Field对象中去 更新 Click事件处理代码先查询当前学号的学生信息 有当前学生的信息则修改相应的记录字段 调用PicSaveToDB保存选择的照片到记录集中的 ZP 字段 更新记录集到数据库中去 没有则通过AddNew新增一条记录 然后修改相应的记录字段 并更新记录集到数据库中去 这里在调用PicSaveToDB前先要判断FileName中是否选择了照片 有才保存到数据库中去 重庆IT论坛 11 4 5学生成绩的录入 目的要求 了解VB中调用SQLServer存储过程的基本方法 Parameter参数对象的使用 视图的使用 触发器的使用 程序接口 程序接口如图11 30所示 图11 30程序接口 重庆IT论坛 11 4 5学生成绩的录入 主要功能 用户可以选择专业 这时会列出本专业所有的学生学号 选择课程 这时下面的DataGrid中会显示相应课程的学生的成绩和学分 可以在DataGrid中输入学生成绩 修改单个学生成绩 学分不允许修改 输入成绩 触发器会自动添加相应的学分 创建过程 参照上面学生信息修改窗口 姓名和学分Enable FALSE 置StuADO的RecordSource属性为 select fromXS KC CJ XS KC CJ为视图名称 DataGrid窗口属性中AllowUpdate Enable 这样DataGrid修改才允许更新到视图中去 从而更新到数据库相应的表中 添加4列 分别选择DataField为XH XM CJ XF 如图11 31 图11 32所示 重庆IT论坛 11 4 5学生成绩的录入 图11 31窗口属性1 重庆IT论坛 11 4 5学生成绩的录入 图11 32窗口属性2 重庆IT论坛 11 4 5学生成绩的录入 实现过程 在Form Load事件中编写专业 课程列表项的添加 各专业通过调用GetStuZY存储过程来得到 同时检索视图中这个专业 选择这门课程的学生 显示在下面的DataGrid中 输入成绩 触发器会自动添入学分 可以选择学号 添加一个学生的某门课程的成绩和选课到学生选课表中 删除XS KC表中删除此学生此门课程的成绩记录 主要代码 1 SQLServer中定义的存储过程 创建GetStuZY的存储过程 从学生表中查询专业信息 CREATEPROCEDURE GetStuZYASselectDISTINCTZYfromXS 加DISTINCT 以返回不重复的专业GO 重庆IT论坛 11 4 5学生成绩的录入 创建显示学生成绩ShowScore存储过程 查看此学生的这门课成绩是否存在 在返回成绩记录 否则返回学号 姓名 专业 课程名信息 CREATEPROCEDURE ShowScore XHvarchar 6 KCMvarchar 16 ASdeclare KCHvarchar 3 countintbeginselect KCH KCHfromKCwhereKCM KCMselect count count fromXS KCwhereXH XHandKCH KCHif count 0 检查查询记录结果数目selectXH XM ZY KCMfromXSwhereXH XH 返回学生记录elseselectXS XH XS XM CJ XS KC XF KCMfromXS KC XS KCwhereXS XH XHandKC KCH KCHandXS XH XS KC XHandKC KCH XS KC KCH 返回成绩记录endGO 重庆IT论坛 11 4 5学生成绩的录入 创建插入学生成绩的AddStuScore存储过程 学生此门课程成绩记录如存在则修改成绩 如不存在则添加这条记录 CREATEPROCEDURE AddStuScore XHvarchar 6 KCMvarchar 16 CJint XFint ASbegindeclare KCHvarchar 3 select KCH KCHfromKCwhereKCM KCMselect fromXS KCwhereXH XHandKCH KCHif RowCount 1updateXS KCsetCJ CJ XF XFwhereXH XHandKCH KCHelseinsertintoXS KCvalues XH KCH CJ XF endGO 重庆IT论坛 11 4 5学生成绩的录入 创建XS KC CJ视图 用来在DataGrid中显示学生 课程 成绩的信息 CREATEVIEW dbo XS KC CJ ASSELECTdbo XS KC XH dbo KC KCM dbo XS KC CJ dbo XS KC XF dbo XS XM dbo XS ZYFROMdbo KCINNERJOINdbo XS KCONdbo KC KCH dbo XS KC KCHINNERJOINdbo XSONdbo XS KC XH dbo XS XHGO 重庆IT论坛 11 4 5学生成绩的录入 创建XS KC的INSERT UPDATE触发器 当添加和修改成绩后 根据当前的成绩自动为该学生该课程增加学分 当成绩小于60分时 学分为0 当大于等于60分时 从该门课程表中取出当前课程的学分来更新当前学生在XS KC表中这门课程的学分 CREATETRIGGERCHECKXFONXS KCINSERT UPDATEASBEGINSETNOCOUNTON updateXS KCsetXF 0whereCJ 60ENDGO 重庆IT论坛 11 4 5学生成绩的录入 2 VB中的主要代码 General中定义的全局变量 PrivateSqlConAsNewADODB ConnectionPrivateSqlResAsADODB RecordsetPrivateSqlCmdAsNewADODB Command Form加载时打开数据库连接 并且通过执行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 EndIfEndSub 重庆IT论坛 11 4 5学生成绩的录入 删除 Click事件处理 调用Command执行delete删除当前学号 当前课程名的成绩记录 PrivateSubStuDel Click Ret MsgBox 是否要删除 StuXH Text 号学生的 Trim StuKCM Text 课的成绩记录 vbYesNo 提示 IfRet vbYesThenSqlCmd ActiveConnection SqlConSqlCmd CommandText deletefromXS KCwhereXH StuXH Text andKCHin selectKCHfromKCwhereKCM StuKCM Text SqlCmd CommandType adCmdTextSqlCmd ExecuteStuADO RecordSource selectXH XM KCM CJ XH ZY XFfromXS KC CJwhereKCM Trim StuKCM Text andZY Trim StuZY Text StuADO RefreshEndIfEndSub 重庆IT论坛 11 4 5学生成绩的录入 课

温馨提示

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

最新文档

评论

0/150

提交评论