第10章 访问数据库.ppt

何聚厚-Visual Basic 2005 程序设计

收藏

资源目录
跳过导航链接。
何聚厚-VisualBasic2005程序设计.zip
Visual Basic 2005 程序设计 何聚厚 26148-00
第9章 GDI+绘图.ppt---(点击预览)
第8章 界面设计.ppt---(点击预览)
第7章 My命名空间.ppt---(点击预览)
第6章 面向对象技术.ppt---(点击预览)
第5章 数据结构.ppt---(点击预览)
第4章 程序调试和错误处理.ppt---(点击预览)
第3章 程序结构控制.ppt---(点击预览)
第2章 基本数据类型及算法.ppt---(点击预览)
第1章 vb2005程序设计概述.ppt---(点击预览)
第10章 访问数据库.ppt---(点击预览)
源代码(所有章节)
第一章
HelloWorld
事件演示
第七章
MyApplication命名空间演示
MyComputer命名空间演示
MyForm命名空间演示
My命名空间演示
文件读写演示
网络操作演示
鼠标键盘操作演示
第三章
Fibonacci
Function过程演示
ParamArray
Sub过程演示
乘法表
判断一组素数1
判断一组素数2
判断一组素数3
判断素数
判断素数2
变量生存期与作用域演示
引用调用演示
成绩分级
最小水仙花数
最小的水仙花数
程序流程控制1.0
程序流程控制2.0
程序流程控制2.1
程序流程控制2.2
程序流程控制2.2.1
程序流程控制3.0
程序流程控制演示
过程重载演示
递归调用演示
默认值演示
第九章
手动画板
简易小画板
统计图
第二章
位运算演示
变量示例
字符串操作演示
日期数据类型操作演示
运算符演示
第五章
ArrayAddDel
DemoArray
TestIComparer
一维数组排序
一维数组排序2
学生信息
学生信息管理
学生信息管理(ArrayList)
学生信息管理2
学生信息管理2(ListView)
学生信息管理2_1
学生信息管理3
学生信息管理4
学生信息管理5
学生信息管理6
数组列表演示
第八章
我的记事本
第六章
6.2初步应用类和对象
6.3构造函数和析构函数
6.4事件及其基本应用
6.5继承
6.6多态
第十章
10.4数据访问实现一
10.5数据访问实现二
Student.mdb
第四章
累加数
累加数2
递归调用最大数
压缩包内文档预览:(预览前5页/共107页)
预览图 预览图 预览图 预览图 预览图
编号:74277888    类型:共享资源    大小:15.33MB    格式:ZIP    上传时间:2020-04-19 上传人:独** IP属地:江苏
20
积分
关 键 词:
何聚厚-Visual Basic 2005 程序设计 Visual
资源描述:
何聚厚-Visual Basic 2005 程序设计,何聚厚-Visual,Basic,2005,程序设计,Visual
内容简介:
1 第10章访问数据库 2 本章主要内容 数据访问基本介绍 熟悉MicorsoftAccess2003 理解简单的数据库设计 使用MicorsoftAccess2003实现数据库设计 熟悉SQL中的常用命令 理解ADO NET与数据访问对象 使用数据访问向导构建简单数据应用程序 使用代码灵活构建数据应用程序 3 随着课程内容学习的深入 有人可能会问 能否利用VisualBasic2005在 NET平台上快速开发常见的实用软件或系统呢 答案是肯定的 这里我们以学生信息管理系统的开发为例 为了简单起见 我们只考虑学生的基本信息和课程成绩信息的基本管理功能 显然 学生信息应该保存 但保存在哪里呢 如果只是简单地保存少量数据 当然可考虑文件 但要存储大量数据而且希望能方便高效地操作数据 就应该考虑数据库 我们开发学生信息管理系统就以 NET平台为基础 数据存储在Access数据库中 利用VisualBasic2005完成软件系统的交互界面和功能模块 4 10 1数据访问概述 目前数据库应用范围非常广泛 无论是传统的Windows桌面应用程序还是基于Web的应用程序 很多都使用数据库在后台存储各种数据信息 通常 普通用户在使用软件或系统的过程中并不关心数据库具体如何设计 实现和应用 但我们要实现以学生数据库为中心的学生信息管理系统 就需要既考虑数据库的具体实现 又考虑系统中各种管理功能模块的开发 因此 我们在这一节介绍什么是数据库 常用的数据库有哪些以及数据库应用程序的一般结构 5 10 1 1数据库介绍 从数据管理的发展历程看 先后经历了人工管理 文件系统和数据库管理阶段 数据库的数据模型主要有层次模型 网状模型和关系模型以及面向对象模型 考虑到目前常见的数据库多是关系数据库 因此我们只介绍关系数据库 例如常用的Foxpro Aceess SQLServer和Oracle等数据库都是关系数据库 所谓关系 其实就是由行和列组成的二维表 表中一行称为记录 元组 一列则称为字段 属性 其中能唯一确定表中记录的一个或多个字段 属性 称为主键 下面以本章要创建的Access学生数据库中的学生基本信息表StuInfo 如图10 1所示 为例进行解释说明 6 图10 1学生基本信息表 7 StuInfo数据表共10行5列 每行称为一条记录 共10条学生记录 每行包含NO 学号 Name 姓名 Sex 性别 BirDate 出生日期 和PolType 政治面貌 5列 共5个字段 属性 如果我们要设置主键 应选择NO字段 而不是Name字段 因为姓名可能重名 8 10 1 2数据库应用程序 数据库应用程序通常是以数据库为中心 在某个领域里能满足用户进行数据访问需要的软件系统 由于不同用户的需求不同 因此不同的数据库应用程序体现出的功能和性能也大不相同 我们利用VisualBasic2005开发 NET平台上的学生信息管理系统 后台为Access数据库 为了让大家从整体更清楚地了解该系统 这里给出了基于数据库应用的学生信息管理系统的系统结构 如图10 2所示 学生的各类信息存放在后台Access学生数据库中 我们通过在 NET平台上完成的人机交互界面和对应的功能模块来进行访问 9 10 学生信息管理系统的功能模块设计如图10 3所示 我们实现了浏览学生信息和学生基本信息的查询 添加 修改和删除等功能 学生成绩信息的查询 添加 修改和删除等功能留给大家自己练习 11 10 2MicrosoftAccess2003 本节结合学生信息管理系统介绍如何进行数据库的设计并使用MicrosoftAccess2003实现数据的存储 同时简单介绍结构化查询语言SQL及其在Access中的使用 假定在学生信息管理系统中计划存储管理两类信息数据 学生的基本信息和学生的成绩信息 基本信息包括学号 姓名 性别 出生日期和政治面貌等项目 而成绩信息包括大学语文 英语 计算机基础和体育等公共课项目 12 10 2 1设计数据库 针对学生信息管理系统中的学生基本信息和成绩两类数据 我们给出如下的分析和设计 设计一个数据库 名字是Student 存放所有数据 在数据库中设计两张数据表 1 学生基本信息表 名字是StuInfo 存放五类基本信息 具体内容见图10 4 2 学生成绩表 名字是StuScore 存放四门公共课成绩 具体内容见图10 5 两个表的主键都是学号NO 通过相同的字段学号NO可建立StuInfo表和StuScore表的连接关系 13 图10 4学生基本信息表设计 图10 5学生成绩表设计 14 提示 建议采用英文名称 便于书写 这里仅仅属于设计阶段 并没有在数据库中实现 但为了一致 采用的类型及名称参考了Access的约定 15 10 2 2实现数据库 MicrosoftAccess2003是微软公司推出的Office套件中的数据库管理软件 功能强大 界面友好 能满足个人和中小企业的多种需要 该软件可在安装Office的过程中选择安装 也可单独进行安装 具体安装过程非常简单 这里不再赘述 实现数据库可简单归结为以下几个步骤 1 新建数据库 2 在数据库中建立数据表结构 完成表中各字段的设计工作 3 在设计好结构的数据表中 添加实际数据信息 4 全部保存 完成建立数据库的任务 16 下面给出采用MicrosoftAccess2003实现数据库的具体过程 1 单击 开始 程序 MicrosoftOffice MicrosoftOfficeAccess2003 启动Access2003 然后单击 文件 新建 弹出新建文件任务窗格 选择 空数据库 弹出 文件新建数据库 对话框 选择保存位置 更改文件名为Student 点击 创建 打开如图10 6所示的窗口 17 图10 6创建Student mdb第1步 18 2 双击 使用设计器创建表 打开如图10 7所示的窗口 图10 7创建Student mdb第2步 19 3 按图10 4设计的学生基本信息表依次在表中输入各个字段名称 选择类型 输入字段说明及其它约束条件 然后点击NO字段所在行 再右键点击该行 在快捷菜单中选择主键 完成后如图10 8所示 20 图10 8创建Student mdb第3步 21 4 单击 文件 保存 弹出 另存为 窗口 在表名称处输入StuInfo 单击 确定 按钮 则图10 8所示窗口标题由表1更新为StuInfo 然后点击窗口右上角小按钮关闭该表 22 5 重复第3 4步 完成StuScore表结构的创建 如图10 9所示 然后关闭该表 图10 9创建Student mdb第5步 23 6 此时会发现表中多了StuInfo和StuScore两项 如图10 10所示 图10 10创建Student mdb第6步 24 7 双击StuInfo表 依次向表中输入数据 如图10 11 a 所示 用类似的方法向StuScore表中输入数据 如图10 11 b 所示 图10 11 a 创建Student mdb第7步 25 图10 11 b 创建Student mdb第7步 26 8 点击表窗口右上角小按钮关闭表StuInfo和StuScore 单击 文件 退出 完成数据库的创建 提示 表中各字段名采用英文 直接使用中文名称也是可以的 这里是为了演示后面别名的用法 27 10 2 3练习SQL SQL是StructuredQueryLanguage的缩写 是通用的关系数据库的标准语言 在此基础上 众多数据库均支持该语言并有所扩展 考虑到后面要实现数据库数据的查询 添加 删除和更新 这里我们将简单介绍SQL中数据查询 SELECT 和数据操作 INSERT UPDATE和DELETE 的基本用法 至于SQL中的其它功能就不再详细介绍了 SELECT查询语句是根据WHERE子句中的条件在FROM子句指定的表中找出满足条件的记录 并按SELECT子句中规定的字段形成查询结果 它既可查询单个表 也可在多个表中进行连接查询 28 1 单表简单查询 指在单个表中按单个字段满足的条件进行的查询 例如 查找名叫李伟的学生的政治面貌信息的SQL语句如下 SELECTPolTypeAS政治面貌FROMStuInfoWHEREName 李伟 29 查找所有男学生的全部基本信息的SQL语句如下 SELECT FROMStuInfoWHERESex 男 30 查找1985年以前出生的所有学生的学号 姓名和政治面貌等信息的SQL语句如下 SELECTNOAS学号 NameAS姓名 PolTypeAS政治面貌FROMStuInfoWHEREBirthDate 1985 1 1 31 注意 SQL语句中的符号必须在英文状态下输入 否则将导致错误 提示 SQL语句的关键词不区分大小写 这里关键词全部采用了大写 为了让英文字段在显示时显示成习惯的中文名称 可在每个字段后面跟AS中文名称指定别名 如果省略WHERE子句 则操作针对数据表中的所有记录 其它SQL语句中类似 表示所查询表中的全部字段信息 此时若表中字段仍需别名 应用AS为表中全部字段指定别名 SELECT子句中多个字段用逗号分开 WHERE子句中可使用 等多种关系运算符 32 2 单表组合查询 指在单个表中按多个字段满足的条件进行的查询 例如 查找政治面貌是党员的所有女学生的学号 姓名 性别和政治面貌等信息的SQL语句如下 SELECTNOAS学号 NameAS姓名 SexAS性别 PolTypeAS政治面貌FROMStuInfoWHEREPolType 党员 ANDSex 女 提示 SQL语句中多个条件可用AND OR和NOT等逻辑运算符连接表示 33 3 单表模糊查询 指在单个表中按部分字段值匹配进行的查询 例如 查找所有姓张的学生的全部基本信息的SQL语句如下 SELECTNOAS学号 NameAS姓名 SexAS性别 BirDateAS出生日期 PolTypeAS政治面貌FROMStuInfoWHERENameLIKE 张 提示 LIKE表示字符串的匹配 相反情况可用NOTLIKE 表示任意零个或多个字符 表示任意单个字符 它们都是通配符 34 4 多表查询 指在两个及其以上的表中进行的上述各种查询 例如 查找所有学生的学号 姓名和各门课程成绩信息的SQL语句如下 SELECTStuInfo NOAS学号 StuInfo NameAS姓名 StuScore ChineseAS大学语文 StuScore EnglishAS英语 StuScore ComputerAS计算机基础ORDERBYASC StuScore PhysEdAS体育ORDERBYDESCFROMStuInfo StuScoreWHEREStuInfo ID StuScore ID 35 查找所有学生的学号 姓名和计算机基础课程成绩统计信息的SQL语句如下 SELECTStuInfo NOAS学号 StuInfo NameAS姓名 SUM StuScore Computer AS计算机基础总分 AVG StuScore Computer AS计算机基础平均分 MAX StuScore Computer AS计算机基础最高分 MIN StuScore Computer AS计算机基础最低分FROMStuInfo StuScoreWHEREStuInfo ID StuScore ID 36 提示 ORDERBY子句可用于对查询结果进行排序 ASC表示升序 DESC表示降序 若缺省则表示按升序排列 涉及多表查询时 建议每个字段名前加上表名 避免混淆 而且FROM子句中多个表名用逗号分开 SUM AVG MAX和MIN分别是对某列求和 求平均值 求最大值和求最小值的函数 可方便用户使用 37 INSERT添加语句是将一条新的记录插入到INTO子句指定的数据表的末尾 操作时将VALUES子句指定的数据插入到INTO子句对应的字段中 INTO子句中如果没有指定字段 则该记录必须在所有字段都有值 如果指定部分字段 则该记录在没有指定字段的值为空 例如 插入一条完整学生记录基本信息的SQL语句如下 INSERTINTOStuInfoVALUES G0000011 张三 男 1985 1 2 团员 38 UPDATE修改语句是对WHERE子句中指定的记录进行修改 操作时按SET子句中指定的方式进行修改 例如 将学号为G000011的学生的政治面貌信息改为 党员 的SQL语句如下 UPDATEStuInfoSETPolType 党员 WHERENO G000011 39 DELETE删除语句是将满足WHERE子句要求条件的记录从FROM子句指定的数据表中删除 例如 将学号为G000011的学生信息删除的SQL语句如下 DELETEFROMStuInfoWHERENO G000011 40 10 3数据访问机制 VisualStudio2005运行在 NETFramework2 0之上 负责数据访问的类和相关组件则是由ADO NET提供的 ADO NET为访问不同数据源提供了统一的接口 从而为用户开发基于 NET的数据库应用程序提供了方便 41 10 3 1ADO NET ADO NET主要包括 NETFramework数据提供程序和DataSet两大组件 其基本结构如图10 12所示 NETFramework数据提供程序主要提供四类对象 Connection对象负责建立与数据源的连接 Command对象负责执行数据库命令 能够返回数据 修改数据和运行存储过程 DataReader负责对数据源进行高速只读的访问 可返回数据但不能修改数据 DataAdapter对象负责连接DataSet对象和数据源 通过Command对象执行SQL命令并将结果填充到DataSet中 或反方向操作 将DataSet中数据更新写入数据源 二者保持一致 42 DataSet专门负责访问从不同数据源取出并暂时存放在内存中的数据 可进行数据的查询 添加 删除和修改操作 此时可断开和数据库的连接 从而提高数据库的访问效率 因此也更适合在Web环境下使用 在DataSet中 同样包含由数据行和列及相关信息构成的数据表对象DataTable和数据关系对象DataRelation 这和实际的数据库非常类似 43 44 10 3 2数据访问对象列表 前面提到 NETFramework数据提供程序主要用于连接数据库 执行命令和查询结果 在VisualBasic2005中 针对不同的数据源和程序设计 可分别使用SQLServer NETFramework数据提供程序 OLEDB NETFramework数据提供程序 ODBC NETFramework数据提供程序和Oracle NETFramework数据提供程序 考虑到要访问Access数据库 这里使用OLEDB NETFramework数据提供程序 其实访问SQLServer和Oracle数据库也可使用它 它的通用型比较好 但与专用的数据提供程序相比 性能上就差一些 45 ADO NET的核心在命名空间System Data中 OLEDB NETFramework数据提供程序则在其子命名空间System Data OleDb中 此时四类核心对象的名称分别为OleDbConnection OleDbCommand OleDbDataReader和OleDbDataAdapter 为了便于访问ADO NET的各类对象 在程序的开头应使用Imports语句导入对应的命名空间 46 VisualBasic2005工具箱的数据选项卡中有DataSet DataGridView BindSource和BindNavigator等数据访问组件 DataSet是ADO NET的核心 功能强大 可看作是离线的数据库 DataGridView可将绑定的数据源中的数据以类似Excel表的形式显示出来 非常方便 BindSource是数据源和窗体上数据绑定控件的中间桥梁 本质是将数据绑定控件的DataSource属性设置为该数据源 BindNavigator是常见的浏览导航控件 可方便地浏览数据源的不同数据 47 构建数据应用程序 一般需要以下步骤 1 建立OleDbConnection对象 连接数据库 2 打开数据库连接 建立OleDbDataAdapter对象 DataSet对象 DataTable对象和SQL命令 同时在窗体上搭建数据访问需要的控件 准备访问数据库 3 访问数据库 利用DataSet对象完成数据的查询 添加 修改和删除 并将结果和提示信息显示在窗体上 4 关闭数据库连接 完成访问 48 在VisualBasic2005中 可通过数据访问向导或代码编程两种方法来实现数据的访问 前者利用可视化向导即可创建简单数据应用程序 几乎无需编写代码 后者根据需要可自行编写代码进行控制 灵活地实现复杂的数据应用程序 下面分别举例介绍两种方法的具体实现过程 49 10 4数据访问实现一 可视化工具向导 以VisualBasic2005中数据访问向导创建访问学生数据库Student mdb的数据应用程序为例 给出具体操作过程如下 1 新建项目 选择 Windows应用程序 并把 名称 修改为 向导数据访问 然后单击 确定 在解决方案资源管理器中将Form1 vb修改为frmMain vb 2 将窗体frmMain的Text属性改为 访问学生基本信息 50 图10 13向导数据访问第3步 3 添加工具箱Data选项卡中的DataGridView控件到窗体上 出现DataGridView任务对话框 如图10 13所示 图10 13向导数据访问第3步 51 4 单击 选择数据源 再单击 添加项目数据源 弹出 数据源配置向导 对话框 如图10 14所示 图10 14向导数据访问第4步 52 5 在选择数据源类型时选择 数据库 单击 下一步 在 选择您的数据连接 时单击 新建连接 弹出添加连接对话框 如图10 15所示 图10 15向导数据访问第5步 53 6 在添加连接时单击 更改 弹出 更改数据源 对话框 在数据源中选择 MicrosoftAccess数据库文件 单击 确定 如图10 16所示 图10 16向导数据访问第6步 54 7 返回 添加连接 的对话框 单击 浏览 选择Student mdb数据库文件 单击 确定 如图10 17所示 图10 17向导数据访问第7步 55 注意 这里使用的是Student mdb数据库文件的绝对路径 应根据自己实际存放文件的路径进行修改 否则将会触发异常 产生错误 56 图10 17向导数据访问第7步 57 8 返回 选择您的数据连接 单击 下一步 弹出对话框询问是否将数据库文件复制到项目中并修改连接 单击 是 如图10 18所示 图10 18向导数据访问第8步 58 9 弹出对话框询问是否将连接字符串保存到应用程序配置文件中 单击 下一步 如图10 19所示 图10 19向导数据访问第9步 59 10 在 选择数据库对象 时单击加号展开数据表 选择表StuInfo 单击 完成 如图10 20所示 图10 20向导数据访问第10步 60 11 单击窗体上的DataGridView控件 将Name属性改为 dgvStuInfo 再单击Columns属性集合 打开 编辑列 窗口 左边选择NO列 右边将HeaderText属性改为 学号 类似地 依次将Name Sex birDate和PloType的HeaderText属性改为 姓名 性别 出生日期 和 政治面貌 最后 单击 确定 如图10 21所示 61 图10 21向导数据访问第11步 62 12 将DataGridView控件的Dock属性改为 Top AllowUserToOrderColumns属性改为 True 并将大小调整合适 添加一个Button控件到窗体上 将Name属性改为 btnUpdate Text属性改为 更新数据 将生成的StuInfoBindSource对象的Sort属性设为 NO 如图10 22所示 图10 22向导数据访问第12步 63 13 双击 更新数据 按钮 在 更新数据 按钮Click事件过程中添加响应代码 PrivateSubbtnUpdate Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesbtnUpdate ClickMe StuInfoTableAdapter Update Me StudentDataSet StuInfo EndSub 64 运行 向导数据访问 程序 结果如图10 23所示 用户可得到所有学生的基本信息 并可以直接在表格上进行添加 修改和删除 单击 更新数据 按钮即可更新数据库 图10 23向导数据访问运行结果 65 注意 本题所有字段都是必填字段 因此应保证各字段都有数据 同时出生日期必须按规定的短格式输入 否则将会触发异常 产生错误 66 10 5数据访问实现二 代码定制 通过上一节的学习 我们看到了VisualBasic2005中数据访问向导创建数据应用程序的强大功能与方便 这里我们仍以访问学生数据库Student mdb为例 进一步学习自己编写代码 灵活实现需要的功能与效果 本程序主要实现学生数据库中针对StuInfo数据表的查询和更改模块的基本功能 至于StuScore数据表的操作 大家可类似地实现 具体操作过程如下 67 1 新建项目 选择 Windows应用程序 把 名称 修改为 代码数据访问 然后单击 确定 并在解决方案资源管理器中将Form1 vb修改为frmMain vb 2 将窗体frmMain的Text属性改为 访问学生信息 3 在解决方案资源管理器中单击添加右键单击项目 代码数据访问 选择添加 再单击模块 将名称改为 mdlDBOp vb 单击 添加 即在项目中完成模块的添加 68 在模块文件mdlDBOp vb中 为了能正确访问Access数据库 并且简化访问对象的书写 我们在一开始就用Imports语句导入System Data和System Data OleDb这两个命名空间 即在ModulemdlDBOp之前加入以下代码 ImportsSystem Data 导入命名空间ImportsSystem Data OleDb 69 考虑到数据库连接 关闭 查询和更改操作的频繁性 我们在模块mdlDBOp中编写了ConnectionDB和SearchDB两个函数以及CloseDB和ModifyDB两个过程 这既减少了代码的长度 又实现了代码的共享 便于调用 函数ConnectionDB用于连接数据库 需要一个字符串参数strDb 它表示项目启动执行目录下的数据库名称 返回值是OleDbConnection对象 该函数代码如下 70 连接并打开数据库 返回OleDbConnection对象FunctionConnectionDB ByValstrDbAsString AsOleDbConnectionDimstrConnStrAsString 数据库连接字符串strConnStr Provider Microsoft jet oledb 4 0 DataSource Application StartupPath strDbDimobjConnAsOleDbConnection 数据库连接对象 前缀obj表示对象 其它相同objConn NewOleDbConnection strConnStr objConn Open 打开数据库ReturnobjConn 返回连接对象EndFunction 71 函数SearchDB用于按指定SQL命令查询数据库 并返回表示查询结果的DataTable对象 它需要三个字符串参数 strDb表示数据库的名称 strSelectSql表示Select查询命令 strTb表示DataSet中生成的数据表的名称 返回值是DataTable对象 该函数代码如下 72 按指定SQL命令查询数据库 并返回表示查询结果的DataTable对象FunctionSearchDB ByValstrDbAsString ByValstrSelectSqlAsString ByValstrTbAsString AsDataTableDimSobjConnAsOleDbConnection 为避免命名混淆 在obj前面加S 表示SearchDB中的连接对象 其它类似SobjConn ConnectionDB strDb DimSobjOleDbDataAdapterAsOleDbDataAdapter 数据适配器对象SobjOleDbDataAdapter NewOleDbDataAdapter strSelectSql SobjConn DimSobjDataSetAsNewDataSet 数据集对象SobjOleDbDataAdapter Fill SobjDataSet strTb 填充数据集ReturnSobjDataSet Tables strTb 返回数据表CloseDB SobjConn EndFunction 73 CloseDB过程用于关闭数据库连接 只需要一个表示数据库连接的OleDbConnection对象参数objConn 比较简单 该过程代码如下 SubCloseDB ByValobjConnAsOleDbConnection 关闭数据库objConn Close objConn Nothing 空引用EndSub 74 ModifyDB过程用于按指定SQL命令完成数据库的添加 修改和删除操作 实现数据库的更改 它需要两个字符串参数 strDb表示数据库的名称 strModifySql表示Insert添加 Update修改和Delete删除等命令 该过程代码如下 75 按指定SQL命令完成数据库的添加 修改和删除操作SubModifyDB ByValstrDbAsString ByValstrModifySqlAsString DimSobjConnAsOleDbConnectionSobjConn ConnectionDB strDb DimMobjOleDbCommandAsOleDbCommand 命令对象MobjOleDbCommand NewOleDbCommand strModifySql SobjConn MobjOleDbCommand ExecuteNonQuery 完成数据库操作命令CloseDB SobjConn EndSub 76 4 搭建基本浏览界面 具体操作有 为窗体frmMain添加3个Label控件 将2个Label控件的Text分别改为 选择表 和 操作结果 另一个Label控件的Name改为 lblTip 添加1个ComboBox控件 将Name改为 cbxTable 在Items集合中添加学生基本信息表和学生成绩表两项内容 再添加1个DataGridView控件 将Name改为 grdResult 77 5 搭建查询界面 具体操作有 为窗体frmMain添加1个GroupBox控件 将Name改为 gbxSearch Text改为 查询 在GroupBox控件里面添加5个Label控件 分别将Text改为 所选字段 字段 逻辑运算符 关系运算符 和 值 继续在GroupBox控件中添加4个ComboBox控件 将对应 所选字段 标签的ComboBox控件的Name改为 cbxSelField 对应 字段 标签的ComboBox控件的Name改为 cbxField 对应 逻辑运算符 标签的ComboBox控件的Name改为 cbxLogOp 在Items集合中添加AND和OR两项内容 对应 关系运算符 标签的ComboBox控件的Name改为 cbxRelOp 在Items集合中添加 和Like七项内容 最后在GroupBox控件中添加1个TextBox控件和1个Button控件 将Name分别改为 txtValue 和 btnSearch 并将Button控件的Text改为 查询 78 6 搭建针对学生基本信息的更改操作界面 具体操作有 为窗体frmMain添加1个GroupBox控件 将Name改为 gbxModInfo Text改为 更改 在GroupBox控件里面添加5个Label控件 分别将Text改为 学号 姓名 性别 出生日期 和 政治面貌 接着在GroupBox控件中添加2个TextBox控件 对应 学号 标签的TextBox控件的Name改为 txtINO 对应 姓名 标签的TextBox控件的Name改为 txtName 继续在GroupBox控件中添加2个ComboBox控件 将对应 性别 标签的ComboBox控件的Name改为 cbxSex 在Items集合中添加男和女两项内容 对应 政治面貌 标签的ComboBox控件的Name改为 cbxPolType 在Items集合中添加团员和党员两项内容 最后在GroupBox控件中添加1个DateTimePicker控件和3个Button控件 将DateTimePicker控件的Name改为 dtpBirDate Format改为 Short 将Button控件的Name分别改为 btnIAdd btnIUpdate 和 btnIDelete Text分别改为 添加 修改 和 删除 79 7 参照 6 构建针对学生成绩的操作界面 这里不再重复 至此 交互界面全部搭建完成 如图10 24所示 图10 24代码数据访问交互界面 80 8 与模块文件mdlDBOp vb类似 在frmMain vb中也要在一开始就用Imports语句导入System Data和System Data OleDb这两个命名空间 9 双击frmMain窗体 在frmMain窗体Load事件过程中添加响应代码 81 PrivateSubfrmMain Load ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesMyBase LoadDimMobjConnAsOleDbConnection 数据库连接对象 前缀obj表示对象 其它相同MobjConn ConnectionDB Student mdb 为避免命名混淆 在obj前面加M 表示frmMain中的连接对象 其它类似 当然这里不加M也行DimMstrSelectSqlAsString 存放两表连接查询的SQL命令字符串MstrSelectSql SELECTStuInfo NOAS学号 StuInfo NameAS姓名 StuInfo SexAS性别 StuInfo BirDateAS出生日期 StuInfo PolTypeAS政治面貌 StuScore ChineseAS大学语文 StuScore EnglishAS英语 StuScore ComputerAS计算机基础 StuScore PhysEdAS体育 FROMStuInfoINNERJOINStuScore ONStuInfo NO StuScore NO ORDERBYStuInfo NOASC 82 DimMobjDataTableAsDataTable 数据表对象MobjDataTable SearchDB Student mdb MstrSelectSql 学生信息 grdResult DataSource MobjDataTable 绑定数据源lblTip Text 全部学生信息 gbxSearch Enabled FalsegbxModInfo Enabled FalsegbxModScore Enabled FalseEndSub 83 10 双击名为cbxTable的ComboBox控件 在cbxTable控件SelectedIndexChanged事件过程中添加响应代码 PrivateSubcbxTable SelectedIndexChanged ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlescbxTable SelectedIndexChangedIfcbxTable SelectedItem 学生基本信息表 Then 选择学生基本信息表gbxSearch Enabled TruegbxModInfo Enabled TruegbxModScore Enabled FalsecbxSelField Items Clear cbxSelField Items Add 学号 ComboBox控件添加可选字段cbxSelField Items Add 姓名 cbxSelField Items Add 性别 cbxSelField Items Add 出生日期 cbxSelField Items Add 政治面貌 cbxField Items Clear cbxField Items Add 学号 cbxField Items Add 姓名 cbxField Items Add 性别 cbxField Items Add 出生日期 cbxField Items Add 政治面貌 84 ElseIfcbxTable SelectedItem 学生成绩表 Then 选择学生成绩表gbxSearch Enabled TruegbxModScore Enabled TruegbxModInfo Enabled FalsecbxSelField Items Clear cbxSelField Items Add 学号 cbxSelField Items Add 大学语文 cbxSelField Items Add 英语 cbxSelField Items Add 计算机基础 cbxSelField Items Add 体育 cbxField Items Clear cbxField Items Add 学号 cbxField Items Add 大学语文 cbxField Items Add 英语 cbxField Items Add 计算机基础 cbxField Items Add 体育 EndIfEndSub 85 11 考虑查询框中Select语句的生成 并进行查询 具体操作有 首先定义变量如下 DimstrSearchStrAsString SELECT 查询命令字符串初始化DimstrSearchStr2AsString 查询命令字符串 DimintNAsInteger 0 查询选择字段个数 86 双击名为cbxSelField的ComboBox控件 在cbxSelField控件SelectedIndexChanged事件过程中添加响应代码 PrivateSubcbxSelField SelectedIndexChanged ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlescbxSelField SelectedIndexChangedSelectCasecbxSelField SelectedIndex 继续生成Select命令Case0 strSearchStr strSearchStr StuInfo NOAS学号 Case1 strSearchStr strSearchStr NameAS姓名 Case2 strSearchStr strSearchStr SexAS性别 Case3 strSearchStr strSearchStr BirDateAS出生日期 Case4 strSearchStr strSearchStr PolTypeAS政治面貌 EndSelectintN intN 1IfintN 0ThenstrSearchStr strSearchStr 从选择的第 个字段开始才需要逗号分隔EndSub 87 在代码设计器中选择cbxSelField对象和LostFocus事件 在cbxSelField控件LostFocus事件过程中添加响应代码 SubCreateSql 继续生成Select命令DimCstrSelectSqlAsStringCstrSelectSql strSearchStr Substring 0 strSearchStr Length 1 FROM 删除最后 个字段后的多余逗号SelectCasecbxTable SelectedIndexCase0 CstrSelectSql CstrSelectSql StuInfo Case1 CstrSelectSql CstrSelectSql StuScore EndSelectCstrSelectSql CstrSelectSql WHERE strSearchStr2 CstrSelectSqlEndSub 88 PrivateSubcbxSelField LostFocus ByValsenderAsObject ByValeAsSystem EventArgs HandlescbxSelField LostFocusCreateSql EndSub 89 双击名为cbxField的ComboBox控件 在cbxField控件SelectedIndexChanged事件过程中添加响应代码 PrivateSubcbxField SelectedIndexChanged ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlescbxField SelectedIndexChangedSelectCasecbxField SelectedIndex 继续生成Select命令Case0 strSearchStr2 strSearchStr2 StuInfo NO Case1 strSearchStr2 strSearchStr2 Name Case2 strSearchStr2 strSearchStr2 Sex Case3 strSearchStr2 strSearchStr2 BirDate Case4 strSearchStr2 strSearchStr2 PolType EndSelectEndSub 90 双击名为cbxRelOp的ComboBox控件 在cbxRelOp控件SelectedIndexChanged事件过程中添加响应代码 PrivateSubcbxRelOp SelectedIndexChanged ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlescbxRelOp SelectedIndexChangedSelectCasecbxRelOp SelectedIndex 根据关系运算符继续生成Select命令Case0 strSearchStr2 strSearchStr2 Case1 strSearchStr2 strSearchStr2 Case2 strSearchStr2 strSearchStr2 Case6 strSearchStr2 strSearchStr2 Like 模糊查询EndSelectEndSub 91 在代码设计器中选择txtValue对象和LostFocus事件 在txtValue控件LostFocus事件过程中添加响应代码 PrivateSubtxtValue LostFocus ByValsenderAsObject ByValeAsSystem EventArgs HandlestxtValue LostFocusIfcbxRelOp SelectedIndex 6Then 模糊查询SelectCasecbxField SelectedIndexCase0 strSearchStr2 strSearchStr2 Trim txtValue Text 表示任意个字符Case1 strSearchStr2 strSearchStr2 Trim txtValue Text Case2 strSearchStr2 strSearchStr2 Trim txtValue Text Case3 strSearchStr2 CStr strSearchStr2 Trim txtValue Text Case4 strSearchStr2 strSearchStr2 Trim txtValue Text EndSelect 92 Else 严格查询SelectCasecbxField SelectedIndexCase0 strSearchStr2 strSearchStr2 Trim txtValue Text Case1 strSearchStr2 strSearchStr2 Trim txtValue Text Case2 strSearchStr2 strSearchStr2 Trim txtValue Text Case3 strSearchStr2 strSearchStr2 Trim txtValue Text 日期需要用一对 括住Case4 strSearchStr2 strSearchStr2 Trim txtValue Text EndSelectEndIfEndSub 93 双击名为cbxLogOp的ComboBox控件 在cbxLogOp控件SelectedIndexChanged事件过程中添加响应代码 PrivateSubcbxLogOp SelectedIndexChanged ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlescbxLogOp SelectedIndexChangedSelectCasecbxLogOp SelectedIndex 根据逻辑运算符继续生成Select命令Case0strSearchStr2 strSearchStr2 AND Case1strSearchStr2 strSearchStr2 OR EndSelectEndSub 94 双击 查询 按钮 在 查询 按钮Click事件过程中添加响应代码 PrivateSubbtnSearch Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesbtnSearch ClickDimSobjConnAsOleDbConnectionSobjConn ConnectionDB Student mdb MsgBox strSearchStr2 显示生成的Select命令DimSobjDataTableAsDataTableSobjDataTable SearchDB Student mdb strSearchStr2 所查学生信息 grdResult DataSource SobjDataTablelblTip Text 查找到学生信息 EndSub 95 12 考虑更改框中添加 修改和删除的实现 具体操作有 首先
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:何聚厚-Visual Basic 2005 程序设计
链接地址:https://www.renrendoc.com/p-74277888.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!