visual basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 msn:...

45
VB.NET 程程程程程 程程 Visual Basic 程程程程程程程程 程程程 程程程 程程程程程程程程程程 MSN: [email protected] 021-55271048

Upload: halla-skinner

Post on 02-Jan-2016

105 views

Category:

Documents


2 download

DESCRIPTION

Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: [email protected] 021-55271048. 目 录. 第 1 章 Visual Basic 程序设计概述 第 2 章 VB 可视化编程基础 第 3 章 VB 语言基础 第 4 章 VB 控制结构 第 5 章 数组和自定义类型 第 6 章 过 程 第 7 章 用户界面设计 第 8 章 数据文件 第 9 章 图形操作 第 10 章 数据库应用基础. 10.1 数据库概述 10.2 VB 数据库访问 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录

Visual Basic

程序设计简明教程第三版

张学典上海理工大学光电学院

MSN:[email protected]

Page 2: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 2

第 1 章 Visual Basic程序设计概述第 2 章 VB可视化编程基础第 3 章 VB语言基础第 4 章 VB控制结构第 5 章 数组和自定义类型第 6 章 过 程第 7 章 用户界面设计第 8 章 数据文件第 9 章 图形操作第10章 数据库应用基础

目 录

Page 3: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 3

第 10 章数据库应用基础

10.1 数据库概述10.2 VB 数据库访问 10.3 记录集对象 10.4 综合应用

Page 4: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 4

10.1 数据库概述

数据库 以一定的组织方式将相关的数据组织在一起,存放在计算机外存储器,能为多个用户共享,与应用程序彼此独立的一组数据的集合。Visual Basic 支 持 多 种 类 型 的 数 据 库 , 如Access 数据库、 FoxPro 数据库、 Microsoft

Excel 、 SQL Server 和 Oracle 等。

本章目录

Page 5: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 5

10.1.1 关系型数据库模型 关系型数据库模型将数据用表的集合来表示。通过建立简单表之间的关系来定义结构,而不是根据数据的物理存储方式建立数据中的关系。不管表在数据库文件中的物理存储方式如何,都可以把它看作一组行和列。

数据库 表

本章目录

Page 6: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 6

关系型数据库

表是有关信息的逻辑组,行被称为记录,列则被称为字段。

主键

记录

字段

本章目录

Page 7: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 7

10.1.2 使用 SQL 查询数据库结构化查询语言 (Structure Query Language , SQL) 是操作关系数据库的标准语言。通过 SQL 命令,可以从数据库的多个表中获取数据,也可对数据进行更新操作。 SQL 的主要语句:

语 句 . 分类 描 述SELECT 数据查询 查找满足特定条件的记录DELETE 数据操作 从数据表中删除记录INSERT 数据操作 向表中插入一条记录UPDATE 数据操作 用来改变特定记录和字段的值

本章目录

Page 8: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 8

SELECT 语句 SELECT 语句的基本语法形式 SELECT 目标表达式列表 FROM 表名 [ WHERE 查询条件 ][ GROUP BY 分组字段 HAVING 分组条件 ][ ORDER BY 排序关键字段 [ASC|DESC] ]它包含 4 部分,其中 SELECT 和 FROM 子句是必须的,通过使用 SELECT 语句返回一个记录集。 例 在学生基本情况表中查询物理系的学生情况:SELECT * FROM 基本情况 WHERE专业 = "物理 "

本章目录

Page 9: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 9

SELECT 语句 - 输出表达式目标表达式为查询结果要显示的字段清单 ( 字段间用逗号分开 ) 。数据的显示顺序由字段清单的顺序决定。

可用星号 * 代表所有字段; 可用 AS 短语指定字段别名; 可通过构造表达式对原始数据进行复杂的运

算处理,产生查询结果。例如,根据出生年月计算每个学生的年龄SELECT 姓名 , (Year(Date())-Year( 出生年月 )) AS 年龄 FROM 基本情况

本章目录

Page 10: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 10

SELECT 语句 - 查询条件WHERE 子句用于限制记录的选择例如,查询 1985-01-01 到 1986-12-31 之间出生的学生:SELECT * FROM 基本情况 WHERE 出生年月 BETWEEN #1985-01-01# AND #1986-12-31#要枚举出若干项进行查询,使用运算符 IN例如,查询物理系和数学系的学生数据:SELECT * FROM 基本情况 WHERE 专业 IN (" 物理 ", " 数学 ") 等价于:SELECT * FROM 基本情况 WHERE 专业 = " 物理 " OR 专业 = " 数学 "

本章目录

Page 11: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 11

SELECT 语句 - 合计函数合计函数用于对记录集进行统计

返回指定字段中的最小值MIN

返回指定字段中的最大值MAX

返回特定字段中所有值的总和SUM

返回选定记录的个数COUNT

获得特定字段中的值的平均数AVG

描 述合计函数

例如,统计物理系学生的人数:SELECT COUNT(*) AS 学生人数 FROM 基本情况 WHERE 专业 = “ 物理”COUNT(*) 在统计时包含值为空值的记录COUNT(表达式 ) 统计时忽略表达式值为空值的记录

本章目录

Page 12: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 12

SELECT 语句 - 分组GROUP BY 子句将指定字段列表中有相同值的记录合并成一条记录。例如,计算每个学生各门课程平均分:SELECT 学号 , AVG( 成绩 ) AS 平均分 FROM 成绩表 GROUP BY 学号要对分组后的数据进行过滤,可在 GROUP BY子句后结合 HAVING 子句在分组中选择。例如,查询平均分在 80分以上的学生:SELECT 学号 , AVG( 成绩 ) AS 平均分 FROM 成绩表 GROUP BY 学号 HAVING AVG( 成绩 )>=80

本章目录

Page 13: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 13

SELECT 语句 - 排序

ORDER BY 子句决定了查询结果的排列顺序在 ORDER BY 子句中,可以指定一个或多个字段作为排序关键字, ASC 选项代表升序, DESC 代表降序。

本章目录

Page 14: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 14

SELECT 语句图解

本章目录

Page 15: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 15

SELECT 语句 - 多表连接若查询的数据分布在多个表中,则必须建立连接查询:SELECT 目标表达式列表 FROM 表 1, 表 2 WHERE 表 1. 字段 = 表 2. 字段例如,学生成绩表中只有学号,如何在查看学生成绩的同时能够直观地看到学生姓名?这就要在两表之间建立连接。 SQL 语句如下:SELECT 基本情况 . 姓名 , 成绩表 .* FROM 基本情况 , 成绩表 WHERE 成绩表 . 学号 = 基本情况 . 学号

本章目录

Page 16: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 16

10.2 VB 数据库访问 10.2.1 ADO 数据控件使用基础 数据库应用程序引例例10.1 设计一个窗体,用 DataGrid控件显示Student.mdb 数据库中“基本情况”表的内容。

本章目录

Page 17: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 17

ADO 数据控件使用 VB采用 ADO(ActiveX Data Objects) 数据访问技术,编写本程序,需要完成以下工作: 在窗体上添加 ADO 数据控件 使用 ADO 连接对象建立与数据提供者之间的连

接 使用 ADO 命令对象操作数据源,从数据源中产

生记录集并存放在内存中 建立记录集与数据绑定控件的关联,在窗体上显

示数据。本章目录

Page 18: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 18

数据源连接设置操作

右单击 ADO控件,选择快捷菜单ADODC属性命令,打开ADO控件属性页窗

右单击 ADO控件,选择快捷菜单ADODC属性命令,打开ADO控件属性页窗

单击

连接数据源的方式

本章目录

Page 19: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 19

选择提供程序

选择提供程序

本章目录

Page 20: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 20

指定访问的数据库

指定要访问的数据库文件

本章目录

Page 21: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 21

连接对象重要属性

连接对象最重要的属性是 ConnectionString ,它是一个字符串,包含了用于与数据源建立连接的相关信息。典型的 ConnectionString 属性值如下:Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Student.mdbProvide ,指定连接提供程序的名称;Data Source ,用于指定要连接的数据源文件。

本章目录

Page 22: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 22

VB 数据库访问过程

本章目录

Page 23: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 23

数据访问过程 应用程序通过连接对象与数据源建立连接( 不同类型的数据库使用各自的连接提供程序 )

命令对象发出 SQL 命令从数据源中获取数据 数据集对象用来保存所查询到的数据记录 应用程序对记录集进行操作 记录集表示内存中来自基本表或命令执行结

果的集合,也由记录 ( 行 ) 和字段 ( 列 ) 构成,可以把它当作一个数据表来进行操作

本章目录

Page 24: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 24

10.2.2 数据绑定 什么是数据绑定?数据绑定是一个过程,即在运行时自动为与记录集中的元素关联的控件设置属性。以便通过控件显示数据集中的数据。

本章目录

Page 25: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 25

数据绑定 Windows 窗体有简单数据绑定和复杂数据绑定简单数据绑定简单数据绑定就是将控件绑定到单个数据字段。每个控件仅显示数据集中的一个字段值。最常用的简单数据绑定是将数据绑定到文本框和标签。在设计或运行时设置控件属性建立绑定 :DataSource :指定 ADO 数据控件DataField :设置记录集中有效的字段

本章目录

Page 26: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 26

简单数据绑定 例10.2 数据绑定的操作过程

界面设计 建立连接和产生记录

集 设置绑定属性

本章目录

Page 27: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 27

复杂数据绑定 复杂数据绑定允许将多个数据字段绑定到一个控件,同时显示记录源中的多行或多列。支持复杂数据绑定的常用控件: DataGrid 数据网格 MSHFlexGrid 数据网格 DataList 数据列表框 DataCombo 数据组合框

本章目录

Page 28: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 28

复杂数据绑定 例10.3复杂数据绑定的操作过程

界面设计 建立连接和产生记录集 数据绑定

本例 DataGrid控件要绑定不同的表,故需要通过代码设置控件的 DataSource 属性。

程序代码

Private Sub Command1_Click()

Adodc1.RecordSource = " 基本情况 " Adodc1.RefreshEnd Sub

Private Sub Command2_Click()

Adodc1.RecordSource = " 成绩表 " Adodc1.RefreshEnd Sub

本章目录

Page 29: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 29

复杂数据绑定 例10.4使用 SQL 语句选择数据表部分数据构成记录集。在网格上绑定部分字段,需要对数据网格布局进行编辑。

本章目录

Page 30: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 30

10.3 记录集对象10.3.1 浏览记录集

1. AbsoloutPostion属性返回当前记录指针值,从 1 到 Recordset 对象所含记录数。2. BOF 和 EOF 的属性BOF判定记录指针是否在首记录之前, EOF判定记录指针是否在末记录之后。如果 BOF 和 EOF 的属性值都为 True ,则记录集为空。

本章目录

Page 31: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 31

3. RecordCount属性对 Recordset 对象中的记录计数,该属性为只读属性。4. Find 方法在 Recordset 对象中查找与指定条件相符的一条记录,并使之成为当前记录。如果找不到,则记录指针指在记录集末尾。Recordset.Find 搜索条件 [,[位移 ] , [搜索方向 ], [ 开始位置 ]]

本章目录

Page 32: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 32

5. Move 方法组Move 方法可代替对数据控件对象的 4 个箭头按钮的操作遍历整个记录集。(1) MoveFirst 方法移至第 1 条记录。(2) MoveLast 方法移至最后一条记录。(3) MoveNext 方法移至下一条记录。(4) MovePrevious 方法移至上一条记录。(5) Move [n] 方法向前或向后移 n条记录。例10.5用命令按钮代替数据控件对象的 4 个箭头按钮的功能 ,使用 Find 方法查找记录

本章目录

Page 33: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 33

MoveNext

MoveLast

MoveFirst

MovePrevious

Adodc1.Recordset. Find " 学号 = ' 500011' "

计算机丁保华500011

………

物理李明 500201

数学庄前500102

专业姓名学号

EOF

BOF

记录集属性方法小结

本章目录

Page 34: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 34

10.3.2 记录集的编辑 1 .数据编辑方法

记录集中数据的增、删、改涉及到 4 个方法:AddNew 方法 在记录集中增加入一个新行Delete 方法 删除记录集中的当前记录Update 方法 确定修改并保存到数据源中CancelUpdate 方法 取消未调用 Update方法前对记录所做的所有修改

本章目录

Page 35: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 35

增加新记录 2.增加新记录(1) 调用 AddNew 方法增加一条空记录(2) 给新记录各字段赋值 ( 可以通过绑定控件直接输入,或使用程序代码给字段赋值,格式为: Recordset.Fields(" 字段名 ") = 值(3) 调用 Update 方法,确定所做的添加,将缓冲区内的数据写入数据库

本章目录

Page 36: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 36

删除记录 3. 删除记录(1) 定位被删除的记录使之成为当前记录(2) 调用 Delete 方法(3) 移动记录指针注意:使用 Delete 方法当前记录立即删除,不加任何的警告或者提示。删除一条记录后,绑定控件仍旧显示该记录的内容。因此,必须移动记录指针刷新绑定控件。

本章目录

Page 37: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 37

修改记录 4.修改记录当改变数据项的的内容时, ADO自动进入编辑状态,在对数据编辑后,只要改变记录集的指针或调用 Update 方法,即可确定所做的修改。例11.6在例 10.5 的基础上加入“新增”、“删除”、“更新”、“放弃”和“结束” 5个按钮,通过对按钮的编程建立增、删、改功能

本章目录

Page 38: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 38

计算机丁保华500011

………

物理李明 500201

数学庄前500102

专业姓名学号

Adodc1.Recordset. AddNew 增加记录

数据库

UpData填入新数据

编辑记录 删除记录• 给各字段赋值 调用 Delete 方法 • 调用 Update 方法 移动记录指针

计算机丁保华500011

………

物理李明500201

数学庄前500102

专业姓名学号

数据修改小结

本章目录

Page 39: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 39

10.3.3 查询与统计 通过 SQL 语句从数据源中获取信息,查询条件由 Select 语句的 Where 短语构成,使用And 与 Or 运算符组合出复杂的查询条件。模糊查询使用运算符 Like ,百分号%代替任意个不确定的内容,用下划线 _代替一个不确定的内容。例如,姓名 Like ' 张 %' 将查询所有张姓的人员例10.7 根据输入的专业名称,在网格内显示Student.mdb 数据库中该专业所有学生信息

本章目录

Page 40: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 40

10.3.3 查询与统计 例 10.8 使用数据列表框或数据组合框提供专业名称,实现查询

例 10.9 使用 SQL 的函数和分组功能,统计各专业的人数、年龄分布。

本章目录

Page 41: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 41

10.3.4 BLOB 数据处理 二进制大型对象 (Binary Large Object , BLOB) 是指任何需要存入数据库的随机大块字节流数据,例如图形或声音文件。数据库中存放 BLOB 的字段必须是二进制类型 ( 在Access 中为 OLE 对象 ) ,在 ADO 中如何处理BLOB 类型的数据,把图形作为数据库的一个字段值存放在数据库,并能显示图形数据 ?

本章目录

Page 42: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 42

BLOB 数据处理 AppendChunk 方法将 BLOB 数据写入数据库 ,语法格式:ADO 对象 .Recordset.Fields( 字段 ).AppendChunk Data

① 用二进制访问方式打开 BLOB 数据文件② 定义一个与文件长度相同大小的字节型数组③ 将文件保存到数组④ 使用 ADO 对象的 AppendChunk 方法写入数据库 例 10.10 选择指定图形文件将数据写入到数据库,在浏览记录时显示照片。 本章目录

Page 43: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 43

10.4 综 合 应 用

例 10.11 设计一个多媒体信息管理系统,要求能将多媒体数据保存在数据库,具有记录的增加、删除、统计和多媒体信息重现等功能。

例 10.12 设计一个飞行航班信息查询系统,要求具有记录的增加、编辑、删除、查询等功能

本章目录

Page 44: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录 44

思考题1. 什么是关系型数据库?2. 简述 SQL 中常用的 Select 语句的基本格式和用法。3. 简述使用 ADO 数据控件访问数据库的步骤。4. 什么是数据绑定?怎样实现数据绑定?5. 在 ADO 中如何用代码实现数据连接,创建一个记录集对象?6 .在 ADO 中如何用代码实现记录指针的移动?7. 如何实现对记录集的增、删、改功能?8. 如果要显示数据表内的照片,可使用哪些控件?

本章目录

Page 45: Visual Basic 程序设计简明教程 第三版 张学典 上海理工大学光电学院 MSN: zhangxuedian@hotmail 021-55271048

VB.NET 程序设计教程 本书目录

你学会了什么 ?