1 / 45

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 10.1 数据库概述 10.2 VB数据库访问 10.3 记录集对象 10.4 综合应用 第10章数据库应用基础

  4. 10.1 数据库概述 数据库 以一定的组织方式将相关的数据组织在一起,存放在计算机外存储器,能为多个用户共享,与应用程序彼此独立的一组数据的集合。 Visual Basic支持多种类型的数据库,如Access数据库、FoxPro数据库、Microsoft Excel、SQL Server和Oracle等。 本章目录

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

  6. 主键 字段 记录 关系型数据库 表是有关信息的逻辑组,行被称为记录,列则被称为字段。 本章目录

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

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

  9. SELECT语句-输出表达式 • 目标表达式为查询结果要显示的字段清单(字段间用逗号分开)。数据的显示顺序由字段清单的顺序决定。 • 可用星号*代表所有字段; • 可用AS短语指定字段别名; • 可通过构造表达式对原始数据进行复杂的运算处理,产生查询结果。 • 例如,根据出生年月计算每个学生的年龄 • SELECT 姓名, (Year(Date())-Year(出生年月)) AS 年龄 FROM 基本情况 本章目录

  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 专业 = "数学" 本章目录

  11. 合计函数 描 述 AVG 获得特定字段中的值的平均数 COUNT 返回选定记录的个数 SUM 返回特定字段中所有值的总和 MAX 返回指定字段中的最大值 MIN 返回指定字段中的最小值 SELECT语句-合计函数 合计函数用于对记录集进行统计 例如,统计物理系学生的人数: SELECT COUNT(*) AS 学生人数 FROM 基本情况 WHERE专业= “物理” COUNT(*) 在统计时包含值为空值的记录 COUNT(表达式) 统计时忽略表达式值为空值的记录 本章目录

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

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

  14. SELECT语句图解 本章目录

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

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

  17. ADO数据控件使用 VB采用ADO(ActiveX Data Objects)数据访问技术,编写本程序,需要完成以下工作: 在窗体上添加ADO数据控件 使用ADO连接对象建立与数据提供者之间的连接 使用ADO命令对象操作数据源,从数据源中产生记录集并存放在内存中 建立记录集与数据绑定控件的关联,在窗体上显示数据。 本章目录

  18. 连接数据源的方式 单击 数据源连接设置操作 右单击ADO控件,选择快捷菜单ADODC属性命令,打开ADO控件属性页窗 本章目录

  19. 选择提供程序 选择提供程序 本章目录

  20. 指定访问的数据库 指定要访问的数据库文件 本章目录

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

  22. VB数据库访问过程 本章目录

  23. 数据访问过程 应用程序通过连接对象与数据源建立连接(不同类型的数据库使用各自的连接提供程序) 命令对象发出SQL命令从数据源中获取数据 数据集对象用来保存所查询到的数据记录 应用程序对记录集进行操作 记录集表示内存中来自基本表或命令执行结果的集合,也由记录(行)和字段(列)构成,可以把它当作一个数据表来进行操作 本章目录

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

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

  26. 简单数据绑定 • 例10.2 数据绑定的操作过程 • 界面设计 • 建立连接和产生记录集 • 设置绑定属性 本章目录

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

  28. 复杂数据绑定 • 例10.3复杂数据绑定的操作过程 • 界面设计 • 建立连接和产生记录集 Private Sub Command1_Click() Adodc1.RecordSource = "基本情况" Adodc1.Refresh End Sub Private Sub Command2_Click() Adodc1.RecordSource = "成绩表" Adodc1.Refresh End Sub • 数据绑定 • 本例DataGrid控件要绑定不同的表,故需要通过代码设置控件的DataSource 属性。 • 程序代码 本章目录

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

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

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

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

  33. 记录集属性方法小结 BOF 学号 姓名 专业 MoveFirst 500102 庄前 数学 MoveNext 500201 李明 物理 MovePrevious … … … MoveLast 500011 丁保华 计算机 EOF Adodc1.Recordset. Find "学号= '500011' " 本章目录

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

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

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

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

  38. 数据修改小结 学号 姓名 专业 500102 庄前 数学 数据库 500201 李明 物理 学号 姓名 专业 … … … 500102 庄前 数学 500011 丁保华 计算机 500201 李明 物理 … … … 500011 丁保华 计算机 UpData 填入新数据 Adodc1.Recordset. AddNew 增加记录 • 编辑记录 删除记录 • 给各字段赋值 调用Delete方法 • 调用Update方法 移动记录指针 本章目录

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

  40. 10.3.3 查询与统计 例10.8使用数据列表框或数据组合框提供专业名称,实现查询 例10.9使用SQL的函数和分组功能,统计各专业的人数、年龄分布。 本章目录

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

  42. BLOB数据处理 • AppendChunk方法将BLOB数据写入数据库,语法格式: • ADO对象.Recordset.Fields(字段).AppendChunk Data • 用二进制访问方式打开BLOB数据文件 • 定义一个与文件长度相同大小的字节型数组 • 将文件保存到数组 • 使用ADO对象的AppendChunk方法写入数据库 • 例10.10选择指定图形文件将数据写入到数据库,在浏览记录时显示照片。 本章目录

  43. 10.4 综 合 应 用 例10.11 设计一个多媒体信息管理系统,要求能将多媒体数据保存在数据库,具有记录的增加、删除、统计和多媒体信息重现等功能。 例10.12 设计一个飞行航班信息查询系统,要求具有记录的增加、编辑、删除、查询等功能 本章目录

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

  45. 你学会了什么?

More Related