-龚沛曾-VB.net程序设计教程(第3版)
收藏
资源目录
压缩包内文档预览:(预览前5页/共68页)
编号:74277869
类型:共享资源
大小:11.31MB
格式:ZIP
上传时间:2020-04-19
上传人:独**
认证信息
个人认证
王**(实名认证)
江苏
IP属地:江苏
20
积分
- 关 键 词:
-
龚沛曾
VB
net
程序设计
教程
- 资源描述:
-
-龚沛曾-VB.net程序设计教程(第3版),龚沛曾,VB,net,程序设计,教程
- 内容简介:
-
应用案例和相关概念ADO NET基础数据库查询数据库维护 数据库应用程序开发 问题的提出 第八章数据文件对数据的保存有利但不利 数据的维护 查询不便 都要通过编程来实现 如何解决 利用数据库访问 2 3 典型案例一 校园一卡通 4 典型案例二 通用考试系统 应用程序 数据库管理系统 VB VC Web技术 ACCESS SQLSERVER ORACLE MySQL ADO NET技术 数据库 题库 C 为什么各门课程考试可使用相同的考试系统 题库的不同 SQL命令 一 引例利用拖放建立简单的学生数据管理程序 5 特点 几乎不需要编程 拖放数据自动实现数据的查询和维护功能 准备数据库添加数据源选择数据表拖放表或者表的字段到窗体 6 1 添加数据源 数据库 1 菜单 项目 添加新数据源 7 是否复制数据库 2 选择数据表 选择数据表 8 3 拖放自动生成 自动产生的控件 直接拖曳字段 自动生成的代码 视图 其他窗口 数据源 直接拖曳表 9 二 NET平台上数据库应用系统的三层结构 数据库应用程序的设计方法 数据拖放 控件和数据源建立连接 具有浏览和维护数据功能 但没有实用意义编程 利用代码定义ADO NET对象和编写相关的需求功能 提供前台应用程序所需的数据源 提供前台与后台之间的通信 用VB等语言完成应用程序功能设计及相应的界面设计 10 ADO NET的体系结构 ADO NET包括两个核心组件 DataProvider 数据提供程序 DataSet 数据集 对象 本课程涉及的四个对象 ConnectionCommandDataAdapterDataSet ADO NET数据访问主要对象 11 ADO NET不同数据提供程序所对应的类名 12 导入System Data OleDb命名空间ImportsSystem Data OleDb OLEDB 对象链接和嵌入数据库 接口 Access数据库 13 数据库操作示意图 数据库 Connetion Command ExecuteNonQuery 方法 DataAdapter DataSet 维护方式 增 删 改 查询方式 查询 统计 14 Connection对象的主要属性和方法 绝对路径和相对路径问题 数据库的连接 用代码实现 导入System Data OleDb名称空间 设置连接字符串 数据库类型 数据库名 创建OleDbConnection对象 设置连接属性 Open打开连接 有的自动打开 访问数据库后Close关闭连接 建立连接的步骤 注意 连接的数据库文件默认应在项目bin debug文件夹下可以多次调用Open 和Close 但必须成对出线 ImportsSystem Data OleDbDimDimconStr conStr Microsoft ACE OLEDB12 0 DataSource classes accdb 一行书写DimobjConnAsNewOleDbConnection conStr objConn Open MsgBox 成功建立与数据库 objConn DataSource 的连接 objConn Close 例9 2 16 数据库连接对象声明和获得连接字符串 连接的是classes mdb数据库 连接字符串如何书写 conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 连接的是classes accdb数据库 连接字符串如何书写 OleDbConnection conStr Provider Microsoft ACE OLEDB12 0 DataSource classes accdb conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 回顾 数据库连接的对象类 DimobjConnAsNewOleDbConnection conStr 17 断开式查询时用到哪些对象类 OleDbDataAdapter DataSet 如何创建 DimobjAdpAsOleDbDataAdapter DimobjDataSetAsNewDataSet 如何使用 selStr 查询命令 objAdp NewOleDbDataAdapter selStr objCon objAdp Fill objDataSet 表别名 如何在窗体上显示查询的结果 DataGridView1 DataSource objDataSet Tables 表别名 18 如何引用DataSet数据集中某些信息 行 列如何表示 如何引用DataGridView控件中某些信息 行 列如何表示 19 要显示每个学生所选的课程数 平均分 学号 字符串命令 sqlStr SELECT学号 count As课程数 avg 成绩 fromscoresgroupby学号 要显示每个学生所选的课程数 平均分 学号 姓名 sqlStr SELECTfirst 姓名 as姓名1 scores 学号 count As课程数 avg 成绩 fromscores studentswherestudents 学号 scores 学号groupbyscores 学号 重点解决SELECT命令的正确书写 方法直接进入ACCES建立查询 程序实现流程 20 显示学号由用户通过文本框输入 sqlStr SELECT fromstudentswhere学号 1502002 显示学号为 1502002 学生的基本信息 交互查询 sqlStr SELECT fromstudentswhere学号 TextBox1 Text 数据库的查询 用代码实现 21 1 理解查询的流程 用到的对象 2 根据查询要求 如何构建SQL命令 3 掌握简单查询 分组查询 交互查询如何实现 4 掌握查询结果如何在网格控件显示 22 23 数据库查询过程示意图 数据库 DataSet OleDbDataAdapter DataGridViewTextBoxLabelComboBox 离线式查询 Provider Datasource SQL OleDbConnection TablesRowsItem Command DataReader对象 Fill 窗体显示查询结果 在线式查询 内存数据库 OleDbConnection 准备工作导入System Data OleDb名称空间创建3个对象 连接 适配器 数据集两个字符串变量 连接属性 SQL命令 查询操作连接对象和数据库连接适配器获取数据 SQL命令 连接对象适配器将获取数据Fill到数据集 查询结果显示在屏幕网格控件获得数据集的表内容 数据库的查询过程 ImportsSystem Data OleDbDimobjConnAsNewOleDbConnectionDimobjAdpAsNewOleDbDataAdapterDimobjDataSetAsNewDataSetDimconStr sqlStr conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 一行书写objConn ConnectionString conStrsqlStr select fromstudents objAdp NewOleDbDataAdapter sqlStr objConn objAdp Fill objDataSet 学生 DataGridView1 DataSource objDataSet Tables 学生 例9 3 注意 DataAdapter对象可以自动打开或关闭连接 25 DataAdapter对象 是数据库与数据集的桥梁 DataAdapter对象 NewOleDbDataAdapter SQL 数据库连接对象 获取SQL语句执行得到的结果集 利用Fill方法将其填充到DataSet对象中DataAdapter对象 Fill 数据集对象 表 主要方法 Fill 26 DataSet对象 是内存中的一个数据库 作用 将数据库中取出来的数据缓存在内存中 常用属性 Tables 数据集中包含的数据表的集合数据集对象的结构 DataSet Tables 数据表名 Rows i Item j 常用方法 Clear清除表中数据 Rows 0 Rows Rows Count 1 Item 0 若仅获得一张表 则Tables 数据表名 Tables 0 Item Item Count 1 27 要将表中某列内容存入列表框 要将表中的姓名字段在列表框显示 Fori 0ToobjDataSet Tables 学生 Rows Count 1s objDataSet Tables 学生 Rows i Item 1 ListBox1 Items Add s Next 0 Rows Count 1 Item 1 Tables 学生 28 DataGridView网格控件 常用属性DataSource获得数据集中表的数据CurrentRow CurrentCell当前选定行 列RowCount ColumnCount行数 列数Cells 列 Value单元格值 0 ColumnCount 1 cells 0 CurrentRow 例 DataGridView1 DataSource objDataSet Tables 学生 DataGridView1 29 DataGridView网格控件 Fori 0ToDataGridView1 ColumnCount 1s DataGridView1 CurrentRow Cells i ValueListBox1 Items Add s Next 0 ColumnCount 1 CurrentRow 掌握这些对后面维护操作很有用 DataGridView1 例将当前选中行的每个单元格内容在列表框显示 例9 3 30 Select目标列From表名 Where查询条件 GroupBy分组字段Having分组条件 OrderBy排序关键字段 Asc Desc 复习 大学计算机 课程学习的Select查询命令 Where条件 目标列 查询基础 常用函数 31 日期函数 Date Year D 合计函数 AVG COUNT SUM MAX MIN 如果没有GROUPBY子句 合计函数对整个表进行统计 产生一条记录 否则按分组统计 一组产生一条记录 查询基础 进入Access 在SQL视图创建查询 熟悉SQL命令的调试 选择 创建 选项卡 选择 查询设计 按钮 创建一个空查询 切换到 SQL视图 输入SQL命令 执行查询 Select姓名 专业FromStudentsWhere出生年月 1 1 1997 And性别 女 例查询1997年以前出生的女生姓名和专业 注意 输入时除出汉字全部英文字符 包括空格 33 例 查询所有计算机专业学生的学号 姓名和年龄分析 年龄通过当前年与出生年月计算获得Year Date Year 出生年月 Select学号 姓名 Year Date Year 出生年月 As年龄FromStudentsWhere专业 计算机 查询基础 仅是标题显示 是别名 没有值 进一步要求 仅显示年龄 19岁的非计算机专业学生 Where专业 计算机 AndYear Date Year 出生年月 19 Where专业 计算机 And年龄 19 34 例查询显示学生学号 姓名 课程 成绩分析 涉及两表查询 通过where将两表中的学号进行关联 SELECTstudents 学号 姓名 课程 成绩fromstudents scoreswherestudents 学号 scores 学号 两表连接 连接 35 利用VB编程实现查询 例对学生成绩按学号分组统计 步骤 OleDbConnection连接构建SQL命令OleDbDataAdapter获得查询数据填充到DataSet数据集在网格显示结果界面设计 DataGridView Button sqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号 关键构建SQL查询命令 conStr Provider Microsoft ACE OLEDB 12 0 DataSource classes accdb 一行书写objConn ConnectionString conStrsqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号 objAdp NewOleDbDataAdapter sqlStr objConn objAdp Fill objDataSet 学生 DataGridView1 DataSource objDataSet Tables 学生 例9 4 进一步思考 合计条件查询 36 sqlStr select学号 max 成绩 as最高分 min 成绩 as最低分 avg 成绩 as平均分fromScoresgroupby学号havingavg 成绩 80 仅显示平均分高于80分的那些学生的最高分 最低分和平均分 如何修改前面的Select命令 注意 不能写成 having平均分 80因为 avg 成绩 as平均分 仅是显示的标题名 没有实际的值 交互查询 查询内容由用户在文本框输入 SqlStr Select fromstudentswhere专业 交通工程 问题 现专业是由用户在文本框输入 SQL命令如何书写 以往查专业为字符串常量 如 交通工程 查询命令 SqlStr Select fromstudentswhere专业 TextBox1 Text 怎么解决 把查询命令拆成三部分 不变字符串部分1 变量 不变字符串部分2 SqlStr Select fromstudentswhere专业 TextBox1 Text 不变 不变 可变 专业 SQL命令交互输入书写形式 38 变量类型为字符串 命令不变部分1 变量 命令不变部分2 变量类型为日期 命令不变部分1 变量 命令不变部分2 变量类型为数值 命令不变部分1 变量 例查询成绩高于cj变量中输入的那些学生sqlStr select学号 成绩fromScoreswhere成绩 cj 掌握这些对后面维护操作很有用 模糊查询 39 利用where字段Like 字符 条件表达式来实现匹配任意字符 sqlStr Select姓名 学号fromstudentswhere姓名Like 陈 但如果查询的姓名中的字符是从文本框输入 也是要把字符串命令分成3部分 例9 5 sqlStr select姓名 学号fromstudentswhere姓名Like TextBox2 Text 40 查询小结 理清查询的过程 用到的对象和作用关键写SQL命令 尤其条件中交互通过TextBox等控件或变量的书写 其他语句 对象及设置都是套路 查询结果 1 一组数据 一般在网格控件显示DataGridView1 DataSource objDataSet Tables 表名 2 一行结果可以在网格控件 也可以在TextBox Label控件 若是后者 控件 属性 objDataSet Tables 表名 Rows i Item j 注意 为简化 本课程仅要求在网格控件显示 41 2 查询命令字符串书写进入access环境 建立查询 调试正确 粘贴到字符串 OleDbConnection conStr Provider Microsoft ACE OLEDB12 0 DataSource classes accdb conStr Provider Microsoft Jet OLEDB 4 0 Datasource classes mdb 常见问题 1 数据库连接字符串书写 获取 3 交互式查询命令书写进入access环境 建立查询 用常量 调试正确 粘贴到字符串 用文本框代替 42 查询4查询4 根据组合框下拉项中选择部门 统计该部门所有员工各月份的最高 最低 平均的实际收入 通过Command对象读取部门信息 然后通过DataReader对象的Read 方法逐一读取后加入到组合框 组合框内容 即部门 根据数据库的内容 在属性窗口设置好 改进 SELECTDISTINCT部门frompersonal 获得唯一部门从数据集获得每一部门加入到组合框 如何引用DataSet数据集中一列信息 在组合框事件写SELECT命令显示与组合框相关的命令 还要考虑两表查询 数据维护 代码实现 43 插入 Insert 删除 Delete 修改 Update 对数据库的数据维护主要涉及到对数据的插入 删除和修改 任何数据库应用程序都离不开这些功能 对一个数据库应用程序而言 用户是不能直接来操作数据库文件 一般通过应用程序中进行交互实现维护 这涉及3条命令 1 维护的流程 用到的对象 2 根据维护要求 如何正确地构建SQL命令 44 45 维护流程图流程 用Command对象实现 连接数据源 适配器 数据集 网格显示数据 在新窗体输入数据构建Insert命令 在网格选定欲删除的数据构建DELETE命令 Command对象与sql命令 连接对象关联 打开数据连接Command对象 ExecuteNonQuery方法 关闭连接 网格显示维护后内容 显示选定的数据输入数据构建Update命令 注意 因为维护首先要看到数据 所以维护前后都用到在网格显示数据 46 维护流程图流程 添加 连接数据源 适配器 数据集 网格显示数据 输入数据构建Insert命令 在网格选定欲删除的数据构建DELETE命令 Command对象与sql命令 连接对象关联 打开数据连接Command对象 ExecuteNonQuery方法关闭数据连接 网格显示更新后的数据 显示选定的数据输入数据构建Update命令 注意 因为维护首先要看到数据 所以维护前后都用到在网格显示数据 修改 删除 Command对象 作用 生成并执行SQL语句 对数据库进行查询和维护操作 47 重要属性 Connection 数据库连接对象 CommandText sql命令 例9 6对数据进行添加 删除 修改 48 分析 1 程序运行就将数据在网格控件显示 通过Form Load事件显示 2 添加 修改的数据在Form2 Form3窗体操作 3 多个窗体 多个事件实现维护操作 涉及的对象和变量可在模块中声明便于共享 ImportsSystem Data OleDbModuleModule1PublicobjConnAsNewOleDbConnectionPublicobjAdapAsNewOleDbDataAdapterPublicobjCmdAsNewOleDbCommandPublicobjDSetAsNewDataSetPublicstrCon strSql EndModule 难点 将窗体中每个控件的内容根据字段不同类型连接成SQL字符串命令文本类型 不变 文本框 不变 日期类型 不变 日期控件 不变 insertintostudentsvalues 1500001 张三 女 计算机 1998 1 2 strSql insertintostudentsvalues TextBox1 Text TextBox2 Text xb TextBox3 Text DateTimePicker1 Value Date 49 添加的内容为常量 添加的内容为变量 显示数据与查询相同在网格全部显示数据 维护操作声明Command对象构建SQL维护命令打开数据库连接执行ExecuteNonQuery方法 维护结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 数据库的维护过程 PrivateSubForm1 Load HandlesMyBase LoadstrCon Provider Microsoft Jet OLEDB 4 0 一行DataSource classes mdb 设置连接字符串objConn ConnectionString strConstrSql select fromStudents objAdap NewOleDbDataAdapter strSql objConn objDSet Clear objAdap Fill objDSet stud DataGridView1 DataSource objDSet Tables stud EndSub 例9 6 注意 因为维护首先要看到数据 显示数据与查询相同略声明3个对象 在网格全部显示数据 添加操作构建SQL添加命令命令对象对数据源的操作 sql 连接对象打开数据库连接执行ExecuteNonQuery方法关闭数据库连接 添加结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 数据库的添加操作 strSql insertintostudentsvalues TextBox1 Text TextBox2 Text xb TextBox3 Text DateTimePicker1 Value Date objCmd NewOleDbCommand strSql objConn objConn Open objCmd ExecuteNonQuery MsgBox 添加成功 objConn Close objDSet Clear objAdap Fill objDSet stud 重新填充数据集Form1 DataGridView1 DataSource objDSet Tables stud 例9 6 Form2 2 数据库的修改 实现流程 网格显示数据 选中欲修改的记录通过网格属性将选中记录的字段逐一在新窗体显示 供用户修改 主键如学号不能修改 可设置为只读 构建Update命令Command命令对象对数据源的操作 sql 连接对象打开数据库连接 执行ExecuteNonQuery方法更新数据库 关闭数据库连接 52 53 修改操作之一读取选定记录在新窗体显示 Form3 0 ColumnCount 1 cells 0 CurrentRow Form3 TextBox1 Text DataGridView1 CurrentRow Cells 0 ValueForm3 TextBox2 Text DataGridView1 CurrentRow Cells 1 ValueIfDataGridView1 CurrentRow Cells 2 Value 男 ThenForm3 RadioButton1 Checked TrueElseForm3 RadioButton2 Checked TrueEndIfForm3 TextBox3 Text DataGridView1 CurrentRow Cells 3 ValueForm3 DateTimePicker1 Value DataGridView1 CurrentRow Cells 4 ValueForm3 Show 修改操作之二构建Updete命令 54 复习Update命令形式 Update表名Set字段名1 值1 字段名2 值2 Where条件 Update常量形式修改某记录字符串表达式 UpdateStudentsSet姓名 张三 性别 女 专业 交通工程 出生年月 1998 1 2 where学号 150001 Update交互修改某记录字符串表达式 拆成不变部分 可变控件或变量 UPDATEstudentsSet姓名 TextBox2 Text 性别 xb 专业 TextBox3 Text 出生年月 DateTimePicker1 Value where学号 TextBox1 Text 55 将网格选定的内容逐项在新窗体显示 根据学号修改操作构建UPdate命令 正确书写其余操作与添加相同 修改操作之三执行更新数据库中数据 strSql UPDATEstudentsSet姓名 TextBox2 Text 性别 xb 专业 TextBox3 Text 出生年月 DateTimePicker1 Value where学号 TextBox1 Text objCmd NewOleDbCommand strSql objConn objConn Open objCmd ExecuteNonQuery MsgBox 修改成功 objConn Close 维护结果显示数据集对象清空 Fill方法获得新数据在网格控件显示 56 根据网格中选定的项构建Delete命令执行删除命令 同添加和修改 数据库的删除 实现流程 strSql DELETE fromStudentswhere学号 DataGridView1 CurrentRow Cells 0 Value objCmd NewOleDbCommand strSql objConn objConn Open objCmd Ex
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。