26
第 12 第 数数数数数 12.1 12.1 数数数数数数数数 数数数数数数数数 12.1.1 12.1.1 数数数数数 数数数数数 12.1.2 12.1.2 第第第第第第第第 第第第第第第第第 12.1.3 12.1.3 第第第第第第第 第第第第第第第 SQL SQL 12.1.4 12.1.4 第第第第第第 第第第第第第 12.2 12.2 数数数数数数数数 数数数数数数数数 12.2.1 12.2.1 第第 第第第第 第第 第第第第 12.2.2 12.2.2 第第第第第 第第第第第 12.2.3 12.2.3 第第第第 第第 第 、、 第第第第 第第 第 、、 12.2.4 12.2.4 第第 第第 12.2.5 12.2.5 第第第 第第第 第第第 第第第 12.2.6 12.2.6 第第第第第第第第第第第 第第第第第第第第第第第 12.3 12.3 ADO ADO 数数数数数数数数 数数数数数数数数 12.3.1 ADO 12.3.1 ADO 第第第第第第 第第第第第第 12.3.3 12.3.3 第第 第第 ADO ADO 第第 第第 12.3.4 12.3.4 第第第第第第第第第 第第第第第第第第第 12.3.5 12.3.5 第第第第第第 第第第第第第 第第第第 第第第第

第 12 章 数据库功能

  • Upload
    odina

  • View
    76

  • Download
    5

Embed Size (px)

DESCRIPTION

第 12 章 数据库功能. 12.1 数据库的基本概念 12.1.1 关系数据库 12.1.2 数据访问对象模型 12.1.3 结构化查询语言 SQL 12.1.4 数据库的分类 12.2 数据管理器的使用 12.2.1 建立一个数据库 12.2.2 添加数据表 12.2.3 数据的增、删、改 12.2.4 查询 12.2.5 数据窗体设计器 12.2.6 数据控件与数据感知控件. 12.3 ADO 数据对象访问技术 12.3.1 ADO 编程模型简介 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 12 章    数据库功能

第 12 章 数据库功能12.112.1 数据库的基本概念数据库的基本概念12.1.1 12.1.1 关系数据库关系数据库 12.1.2 12.1.2 数据访问对象模型 数据访问对象模型 12.1.3 12.1.3 结构化查询语言结构化查询语言 SQL SQL 12.1.4 12.1.4 数据库的分类数据库的分类 12.212.2 数据管理器的使用 数据管理器的使用 12.2.1 12.2.1 建立一个数据库 建立一个数据库 12.2.2 12.2.2 添加数据表 添加数据表 12.2.3 12.2.3 数据的增、删、改 数据的增、删、改 12.2.4 12.2.4 查询 查询 12.2.5 12.2.5 数据窗体设计器 数据窗体设计器 12.2.6 12.2.6 数据控件与数据感知控件 数据控件与数据感知控件

12.312.3 ADOADO 数据对象访问技术数据对象访问技术 12.3.1 ADO12.3.1 ADO 编程模型简介 编程模型简介 12.3.3 12.3.3 使用使用 ADOADO 控件 控件 12.3.4 12.3.4 使用数据环境设计器使用数据环境设计器 12.3.5 12.3.5 创建数据报表创建数据报表 习题十二习题十二

Page 2: 第 12 章    数据库功能

12.1 数据库的基本概念12.1.1 关系数据库1. 数据表 2. 记录与字段 3. 关键字 4. 索引 12.1.4 数据库的分类VB 可以访问的数据库有以下 3 类:(1) Jet 数据库:数据库由 Jet 引擎直接生成和操作,不仅灵活而且速度快, Microsoft Access 和 VB 使用相同的 Jet数据库引擎。(2) ISAM 数据库:索引顺序访问方法( ISAM )数据库。有几种不同的形式,如 Dbase 、 FoxPro 、 Text Files 和 Par

adox 。在 VB 中可以生成和操作这些数据库。(3) ODBC 数据库:开放数据库连接。这类数据库包括遵守

ODBC 标准的客户∕服务器数据库,如 Microsoft SQL Server 、 Oracle 、 Sybase 等, VB 可以使用任何支持 ODBC 标准的数据库。

Page 3: 第 12 章    数据库功能

12.2 数据管理器的使用 12.2.1 建立一个数据库1. 启动数据管理器启动数据管理器有两种方法: (1) 在 VB 集成环境中启动数据管理器:单击“外接程序”菜单下的“可视化数据管理器”命令,即可打开可视化数据管理器“ VisData” 窗口,如图 12-1 所示。 (2) 直接执行 VisData 程序:可不进入 VB 环境,直接运行 VB 安装目录下的 VisData.exe 程序文件来启动可视化数据管理器。

Page 4: 第 12 章    数据库功能

12.2.2 添加数据表 建立数据表结构 数据表的建立步骤如下: (1) 打开已经建立的 Access 数据库 (2) 在“表名称”文本框中输入表名,如“职工工资”。 (3) 单击“添加字段”按钮打开“添加字段”对话框 (4) 单击“表结构”对话框中的“添加索引”按钮,打开“添加索引”对话框。 (5) 在“表结构”对话框中,单击“生成表”按钮生成表,关闭“表结构”对话框,在数据库窗口中可以看见生成的数据表结构。

Page 5: 第 12 章    数据库功能

2. 修改数据表结构操作如下:(1) 打开要修改的数据表的数据库。 (2) 在快捷菜单中选择“设计”,将打开“表结构”对话框 12.2.3 数据的增、删、改1. 工具栏 2. 数据记录的输入、修改与删除

Page 6: 第 12 章    数据库功能

12.2.4 查询1. 建立一个查询2. SQL 语句简介 其语法为Select 〈字段名表〉 From 〈表名〉 Where 〈条件〉 (2) Update 语句的语法。 其语法为Update 〈表名〉 Set 〈字段〉 = 〈表达式〉 [, 〈字段〉

= 〈表达式〉 ] Where 〈条件〉(3) Delete 语句的语法。 其语法为Delete From 〈表名〉 Where 〈条件〉(4) Insert 语句的语法 其语法为Insert Into 〈目标表名〉 Select 〈字段 1 〉 [, 〈字段

2 〉… ] From 〈源表名〉(5) Select Into 语句的语法。其语法为Select 〈字段名表〉 Into 〈新表名〉 From 〈源表名〉

Page 7: 第 12 章    数据库功能

12.2.5 数据窗体设计器 使用数据窗体设计器建立数据操作窗体的步骤为(1) 新建一个标准 EXE 工程。(2) 在可视化数据管理器中,从“实用程序”菜单中选择“数据窗体设计器”命令,打开“数据窗体设计器”对话框,如图 12-19 左所示。(3) 单击“生成窗体”按钮,在工程中添加一个数据窗体,建立的数据窗体如图 12-19 右所示。

图 12-19 使用“数据窗体设计器”建立的数据窗体

Page 8: 第 12 章    数据库功能

12.2.6 数据控件与数据感知控件 1. 数据控件的常用属性、方法和事件 2. 数据绑定控件 3. 示例分析 【例 12-1 】通过手工方式建立一个简单的工资管理系统,如图 12-20 所示。

图 12-20 一个简单的工资管理系统

Page 9: 第 12 章    数据库功能

设计步骤如下: (1) 建立应用程序用户界面与设置对象属性。 (2) 编写代码。 编写命令按钮控件数组 Command1() 的 Click 事件代码:Private Sub Command1_Click(Index As Integer) n = Index Select Case n Case 0 Data1.Recordset.AddNew Case 1 Data1.Recordset.Delete Data1.Recordset.MoveNext Case 2 Unload Me End SelectEnd Sub

Page 10: 第 12 章    数据库功能

为了在改变工资数据时能够计算实发工资,编写 Text1() 的 Validate 事件代码:Private Sub text1_Validate(Index As Integer, Cancel As Boolean) Dim a(3 To 8) As Single Select Case Index Case 3 To 8 For i = 3 To 8 a(i) = Val(text1(i).Text) Next text1(9).Text = a(3) + a(4) + a(5) + a(6) - a(7) - a(8) End SelectEnd Sub 为了能即时反映记录指针的移动情况,编写 Data1 的事件代码:Private Sub Data1_Reposition() On Error Resume Next Data1.Caption = " 记录: " & (Data1.Recordset.AbsolutePosition + 1)End Sub

Page 11: 第 12 章    数据库功能

12.3 ADO 数据对象访问技术 12.3.1 ADO 编程模型简介 : 1. 连接( Connection )对象2. 命令( Command )对象 3. 记录集( Recordset )对象 编写代码。 首先在窗体的通用段声明对象变量:Dim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordset 在窗体的 Load 事件代码中建立 ADO 的 Connection 对象和 Recordset 对象:Private Sub Form_Load() s = "Provider = Microsoft.Jet.OLEDB.3.51; Persist Security I

nfo = False;" _ & "Data Source = d:\VB6lx\rsgl.mdb" cnn.CursorLocation = adUseClient cnn.Open s Set rst = New Recordset

Page 12: 第 12 章    数据库功能

rst.Open " 职工工资 ", cnn, adOpenStatic, adLockOptimistic For Each aa In text1 Set aa.DataSource = r ' 绑定所有文本框到记录源 Next Combo1.AddItem “ 全体” ' 初始化组合框 Combo1.AddItem " 保卫 " Combo1.AddItem " 财务 " Combo1.AddItem " 技术 " Combo1.AddItem " 生产 " Combo1.AddItem " 供销 " Combo1.Text = Combo1.List(0)End Sub 编写命令按钮控件数组 Command1() 的 Click 事件代码:Private Sub Command1_Click(Index As Integer) n = Index Select Case n Case 0

Page 13: 第 12 章    数据库功能

rst.MoveFirst Case 1 ' 上一个 rst.MovePrevious If rst.BOF Then rst.MoveFirst Case 2 ' 下一个 rst.MoveNext If rst.EOF Then rst.MoveLast Case 3 ' 末一个 rst.MoveLast End SelectEnd Sub 编写组合框 Combo1 的 Click 事件代码:Private Sub Combo1_Click() t = Combo1.Text If t = " 全体 " Then rst.Filter = "" Else rst.Filter = " 部门 = '" & t & "'" ' 设置“筛选”条件 End If rst.Resync adAffectAllChaptersEnd Sub

Page 14: 第 12 章    数据库功能

12.3.3 使用 ADO 控件 1. 添加 ADO Data 控件 2. ADO Data 控件的属性 3. ADO Data 控件对数据的操作 4. 使用 ADO Data 控件【例 12-3 】使用 ADO Data 控件建立的工资管理数据窗体,如图 12-25 所示。

图 12-25 使用 ADO Data 控件

Page 15: 第 12 章    数据库功能

设计步骤如下: (1) 建立应用程序用户界面。 (2) 设置对象属性。 (3) 编写代码。 编写命令按钮组 Command1 的 Click 事件代码:Private Sub command1_Click(Index As Integer) Select Case Index Case 0

' 添加∕确定按钮 If command1(0).Caption = " 添加 (&A)" Then command1(0).Caption = " 确定 (&O)" command1(1).Caption = " 取消 (&C)" Adodc1.Recordset.AddNew aa (False) Else command1(0).Caption = " 添加 (&A)"

Page 16: 第 12 章    数据库功能

Adodc1.Recordset.UpdateBatch adAffectAll aa (True) End If Case 1

' 编辑∕取消按钮 If command1(1).Caption = " 编辑 (&E)" Then command1(0).Caption = " 确定 (&O)" command1(1).Caption = " 取消 (&C)" aa (False) Else command1(0).Caption = " 添加 (&A)" command1(1).Caption = " 编辑 (&E)" Adodc1.Recordset.CancelUpdate Adodc1.Refresh aa (True) End If

Page 17: 第 12 章    数据库功能

Case 2 ' 删除按钮 Adodc1.Recordset.DeleteAdodc1.Recordset.MoveNext Case 3 ' 关闭按钮 Unload Me End SelectEnd Sub 其中调用了通用 Sub 过程 aa :Private Sub aa(l As Boolean) Dim oTxt As TextBox For Each oTxt In text1 oTxt.Locked = l Next command1(2).Visible = l command1(3).Visible = lEnd Sub

Page 18: 第 12 章    数据库功能

为文本框控件组 Text1 编写计算“实发工资”的过程代码:Private Sub text1_Validate(Index As Integer, Cancel As Boolean) Dim a(3 To 8) As Single Select Case Index Case 3 To 8 For i = 3 To 8 a(i) = Val(text1(i).Text) Next text1(9).Text = a(3) + a(4) + a(5) + a(6) - a(7) - a(8) End SelectEnd Sub 为显示当前记录位置,编写 adodc1 的 MoveComplete 事件代码:Private Sub adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = " 记录: " & (Adodc1.Recordset.AbsolutePosition)End Sub

Page 19: 第 12 章    数据库功能

12.3.4 使用数据环境设计器1. 向工程中添加数据环境2. 创建连接对象3. 创建命令对象 4. 使用数据环境【例 12-4 】在例 12-2 的数据查看窗体中使用数据环境。 设计步骤如下: (1) 建立应用程序用户界面。 (2) 建立数据环境。 (3) 修改属性设置。

Page 20: 第 12 章    数据库功能

(4) 修改代码。 修改窗体的 Load 事件代码:Private Sub Form_Load()

Combo1.AddItem " 全体 "

Combo1.AddItem " 保卫 "

Combo1.AddItem " 财务 "

Combo1.AddItem " 技术 "

Combo1.AddItem " 生产 "

Combo1.AddItem " 供销 "

Combo1.Text = Combo1.List(0)

End Sub

Page 21: 第 12 章    数据库功能

修改命令按钮的事件代码:Private Sub command1_Click(Index As Integer) Select Case Index Case 0 DataEnvironment1.rsCommand1.MoveFirst Case 1 DataEnvironment1.rsCommand1.MovePrevious If DataEnvironment1.rsCommand1.BOF() Then DataEnvironment1.rsCommand1.MoveFirst End If Case 2 DataEnvironment1.rsCommand1.MoveNext If DataEnvironment1.rsCommand1.EOF() Then DataEnvironment1.rsCommand1.MoveLast End If Case 3 DataEnvironment1.rsCommand1.MoveLast

Page 22: 第 12 章    数据库功能

End Select

End Sub

修改组合框的事件代码:Private Sub Combo1_Click()

t = Combo1.Text

If t = " 全体 " Then

DataEnvironment1.rsCommand1.Filter = ""

Else

DataEnvironment1.rsCommand1.Filter = " 部门 = '" & t & "'"

End If

End Sub

Page 23: 第 12 章    数据库功能

12.3.5 创建数据报表 1. 设计数据环境 2. 添加 DataReport 在属性窗口中设置 DataReport1 对象的属性: DataSource 属性改为: DataEnvironment1 DataMember 属性改为: Command1_ 分组3. 设计报表中界面 4. 编写代码 编写 DataReport1 的 Initialize 事件代码:Private Sub DataReport_Initialize() DataReport1.Title = " 大江电机厂 " & Month(D

ate) & " 月份工资报表 "End Sub5. 运行报表

Page 24: 第 12 章    数据库功能

习题十二 12.1 在 VB 中可以访问哪些类型的数据库? 12.2 VB 访问数据库有哪几种不同的方法?12.3 建立成绩管理数据库。其中包含学生成绩表,其结构如表 12-21 所示。 字段名称 类 型 字段长度 索 引学号 Text 8 主索引姓名 Text 4  

班级 Text 8  

性别 Boolean 2  

语文 Integer 2  

外语 Integer 2  

数学 Integer 2  

总分 Integer 2  

Page 25: 第 12 章    数据库功能

12.4 如何在记录集内移动、定位、编辑、删除和添加数据? 12.5 简述将 ADO 控件连接到数据源的步骤。 12.6 利用 Data 控件说明如何将一个表中的字段绑定到一个文本框中? 12.7 利用 ADO 控件编写学生成绩管理程序(数据表为习题 12.3 建立的学生成绩表)。程序具有增加、删除、修改记录的功能。 12.8 为习题 12.7 的学生成绩管理程序增加菜单,实现按班级、姓名查找记录的功能。 12.9 为习题 12.8 的学生成绩管理程序增加统计功能。分别统计语文、外语、数学平均分数,并统计各科不及格的人数。 12.10 为习题 12.9 的学生成绩管理程序增加一个“数据表格”控件 DataGrid ,实现对数据的浏览。

Page 26: 第 12 章    数据库功能

12.11 简述建立数据环境( Data Environment )的步骤。 12.12 改写习题 12.10 ,使用数据环境代替 ADO 数据控件。 12.13 编写一个应用程序:工资管理系统。 工资管理的主要任务是根据本单位当月在册职工,按各有关工资项目的数据分别求出每人的实发工资。为了财会管理的需要,每月还要打印出各种必要的工资报表。为完成上述任务,本系统应当满足以下需求:(1) 能够储存每个职工当月的工资信息,包括部门、编号、姓名、基本工资、岗位津贴、职务补贴、奖金、房租、水电、实发工资等数据。 (2) 应当具备增加人员、删除人员、修改数据、报表打印及退出系统等功能。