版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1数据库应用程序开发数据库应用程序开发2数据库 以一定的组织方式将相关的数据组织在一起,存放在计算机外存储器,能为多个用户共享,与应用程序彼此独立的一组数据的集合。Visual Basic支持多种类型的数据库,如Access数据库、FoxPro数据库、Microsoft Excel、SQL Server和Oracle等。第1页/共53页3关系型数据库模型将数据用表的集合来表示。通过建立简单表之间的关系来定义结构,而不是根据数据的物理存储方式建立数据中的关系。不管表在数据库文件中的物理存储方式如何,都可以把它看作一组行和列。数据库表第2页/共53页4表是有关信息的逻辑组,行被称为记录,列则
2、被称为字段。主键记录字段第3页/共53页5结构化查询语言(Structure Query Language,SQL)是操作关系数据库的工业标准语言。通过SQL命令,可以从数据库的多个表中获取数据,也可对数据进行更新操作。SQL的主要语句:从数据库中删除一个表数据定义DRUP在数据库中建立一个新表数据定义CREATE用来改变特定记录和字段的值数据操作UPDATE向表中插入一条记录数据操作INSERT从数据表中删除记录数据操作DELETE在数据库中查找满足特定条件的记录数据查询SELECT描 述分类命 令.第4页/共53页61SELECT语句的基本语法形式 SELECT 目标表达式列表 FROM
3、表名 WHERE 查询条件 GROUP BY 分组字段 HAVING 分组条件 ORDER BY 排序关键字段 ASC|DESC 它包含4部分,其中SELECT和FROM子句是必须的,通过使用SELECT语句返回一个记录集。 例 在学生基本情况表中查询物理系的学生情况:SELECT * FROM 基本情况 WHERE专业= 物理第5页/共53页7目标表达式为查询结果要显示的字段清单(字段间用逗号分开)。数据的显示顺序由字段清单的顺序决定。 可用星号*代表所有字段; 可用AS短语指定字段别名; 可通过构造表达式对原始数据进行复杂的运算处理,产生查询结果。例如,根据出生年月计算每个学生的年龄SEL
4、ECT 姓名, (Year(Date()-Year(出生年月) AS 年龄 FROM 基本情况 第6页/共53页8WHERE子句用于限制记录的选择例如,查询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 专业 = 数学 第7页
5、/共53页9合计函数用于对记录集进行统计返回指定字段中的最小值MIN返回指定字段中的最大值MAX返回特定字段中所有值的总和SUM返回选定记录的个数COUNT获得特定字段中的值的平均数AVG描 述合计函数例如,统计物理系学生的人数:SELECT COUNT(*) AS 学生人数 FROM 基本情况 WHERE专业= “物理”COUNT(*) 在统计时包含值为空值的记录COUNT(表达式) 统计时忽略表达式值为空值的记录第8页/共53页10GROUP BY子句将指定字段列表中有相同值的记录合并成一条记录。例如,计算每个学生各门课程平均分:SELECT 学号, AVG(成绩) AS 平均分FROM
6、成绩表 GROUP BY 学号要对分组后的数据进行过滤,可在GROUP BY子句后结合HAVING子句在分组中选择。例如,查询平均分在80分以上的学生:SELECT 学号, AVG(成绩) AS 平均分FROM 成绩表 GROUP BY 学号HAVING AVG(成绩)=80 第9页/共53页11ORDER BY子句决定了查询结果的排列顺序在ORDER BY子句中,可以指定一个或多个字段作为排序关键字,ASC选项代表升序,DESC代表降序。第10页/共53页12若查询的数据分布在多个表中,则必须建立连接查询:SELECT目标表达式列表 FROM 表1, 表2 WHERE 表1.字段 = 表2.
7、字段例如,学生成绩表中只有学号,如何在查看学生成绩的同时能够直观地看到学生姓名?这就要在两表之间建立连接。SQL语句如下:SELECT基本情况.姓名, 成绩表.* FROM 基本情况, 成绩表 WHERE成绩表.学号=基本情况.学号 第11页/共53页13数据库访问过程 数据库应用程序引例例11.1 设计一个窗体,用DataGrid控件显示Student.mdb数据库中“基本情况”表的内容。 第12页/共53页14VB.NET采用ADO(ActiveX Data Objects)数据访问技术,编写本程序,需要完成以下工作: 界面设计 在窗体上添加DataGrid控件 创建对象连接 绑定数据到D
8、ataGrid控件使其能显示在窗体上。 程序代码第13页/共53页15 应用程序通过连接对象与服务器上的数据源建立连接(不同类型的数据库使用各自的连接提供程序)第14页/共53页16 命令对象发出SQL命令从数据源中获取数据 数据集对象用来保存所查询到的数据记录 数据适配器用于在数据源和数据集之间交换数据。 当数据传输到客户端后,ADO.NET断开与数据源的连接,应用程序离线工作如果应用程序改变了数据集的内容,通过重新连接来提交变化。 第15页/共53页17数据集是一个容器,一个数据集可以包含多张数据表及数据表之间的关系,这些表可以来自多个数据库或电子表格之类的非数据库源。一旦数据在数据集内,
9、则不管它的原始源是什么,都可以使用一致的对象模型对它进行操作。在 ADO.NET 中,数据传输的格式是 XML,是基于文本的标准格式,不使用二进制信息,它可以通过任何协议发送。ADO.NET 自动根据需要将数据转换为 XML 或从 XML 转换出数据,而用户不必知道 XML 。 第16页/共53页18ADO.NET数据控件对象有4套: 用于 SQL Server 7.0(以Sql为前导名) 用于Oracle数据库(以Orc为前导名)用于ODBC 数据源(以Odbc为前导名)用于OLE DB 接口的数据库(以OleDb为前导名) 第17页/共53页19OleDb数据控件对象是一个通用对象,可访问
10、目前流行的数据库系统 数据对象名称数据对象名称功能描述功能描述OleDbConnection建立一个与数据源的连接建立一个与数据源的连接OleDbCommand用于执行一条用于执行一条SQL语句,以便从数据源中语句,以便从数据源中获取数据获取数据OleDbDataReader提供从数据源读取数据行的接口,需要与提供从数据源读取数据行的接口,需要与OleDbCommand配合使用配合使用OleDbDataAdapter 在与数据源连接时,可从数据源读数据填在与数据源连接时,可从数据源读数据填充充DataSet或更新数据源或更新数据源DataSet是保存在内存中供使用的数据副本是保存在内存中供使用
11、的数据副本第18页/共53页201启动数据适配器配置向导将数据适配器对象OledbDataAdapter从工具箱拖放到窗体或组件上。2创建连接第19页/共53页21选择提供程序 第20页/共53页22指定要访问的数据库文件 第21页/共53页23选择使用SQL 语句建立查询 第22页/共53页24命令对象最重要的属性Connection 指定连接对象CommandType 使用命令的类型CommandText 操作命令的内容第23页/共53页25连接对象最重要的属性是ConnectionString,它是一个字符串,包含了用于与数据源建立连接的相关信息。典型的 ConnectionString
12、 属性值如下:Provide,指定连接提供程序的名称;Data Source,用于指定要连接的数据源文件。第24页/共53页26选择“数据|生成数据集”命令,打开“生成数据集”对话框。12. 命名数据集 34第25页/共53页27选择“数据|生成数据集”命令,打开“生成数据集”对话框。12. 命名数据集 34注意:这里的DataSet1是指一个数据集的定义,它是一个用xml格式表示的,文件名为Dataset1.xsd的数据集定义文件,并不包含任何的数据库中的数据。而按此文件架构产生的DataSet11才是一个包含实际数据的数据集对象实例。 第26页/共53页28什么是数据绑定?数据绑定是一个过
13、程,即在运行时自动为与数据集中的元素关联的控件设置属性。以便通过控件显示数据集中的数据。第27页/共53页29Windows 窗体有简单数据绑定和复杂数据绑定简单数据绑定简单数据绑定就是将控件绑定到单个数据字段。每个控件仅显示数据集中的一个字段值。最常用的简单数据绑定是将数据绑定到文本框和标签。要建立数据绑定,需要在设计或运行时对控件的DataBinding属性进行设置。 第28页/共53页30例11.2 数据绑定的操作过程 界面设计 创建和配置数据集 设置绑定属性 程序代码Private Sub Form1_Load() Handles MyBase.LoadDataSet11.Clear(
14、)OleDbDataAdapter1.Fill(DataSet11, 基本情况)End Sub第29页/共53页31使用BindingContext 对象浏览数据记录Position 属性 数据集当前记录的位置序号Count 属性 数据表中的记录条数 转跳到第一条记录Me.BindingContext(DataSet11, 基本情况).Position = 0转跳到上一条记录Me.BindingContext(DataSet11, 基本情况).Position -= 1 转跳到下一条记录Me.BindingContext(DataSet11, 基本情况).Position += 1 最后一条记
15、录的Position 属性值等于Count 属性值-1 第30页/共53页32复杂数据绑定允许将多个数据元素绑定到一个控件,同时显示记录源中的多行或多列。支持复杂数据绑定的控件:数据网格DataGrid、组合框ComboBox和列表框ListBox等 第31页/共53页33复杂数据绑定属 性设置控控 件件属属 性性说说 明明 DataGridDataSource指定数据源指定数据源, ,例如例如DataSetDataMember若若DataSet包含的表不止一个,包含的表不止一个,则由该属性指定要绑定的表则由该属性指定要绑定的表ComboBoxListBoxDataSource指定数据源指定数
16、据源DisplayMember显示的字段显示的字段ValueMember组合框、列表框中选择后的值组合框、列表框中选择后的值第32页/共53页34例11.3复杂数据绑定的操作过程 界面设计 创建和配置数据集 数据绑定 本例DataGrid控件要绑定不同的表,故需要通过代码设置控件的DataSource 属性。 程序代码 Private Sub Button1_Click() Handles Button1.ClickDataGrid1.DataSource = DataSet11.Tables(基本情况)End SubPrivate Sub Button2_Click() Handles Bu
17、tton2.ClickDataGrid1.DataSource = DataSet11.Tables(成绩表)End Sub第33页/共53页35创建数据对象的代码:Dim 数据对象 As New 对象类(参数) 例11.4 用代码实现例11.2的功能 界面设计 导入ADO.NET名称空间Imports System.Data 第34页/共53页36 创建OleDbConnection连接对象创建连接Student.mdb的对象objConn,代码:Dim objConn As New OleDbConnection(strConn) objConn.Open() 创建创建OleDbDataA
18、dapter对象Dim strSql = Select * From 基本情况 Dim objAdap As New OleDbDataAdapter(strSql, objConn)第35页/共53页37 创建数据集对象Dim objDSet As New DataSet用数据集的“基本情况”表填充objDSet对象 objAdap.Fill(objDSet, 基本情况)第36页/共53页38实现数据绑定 使用控件的DataBindings属性的Add方法建立绑定:控件对象.DataBindings.Add(New Binding(控件属性, 数据集, 字段名)例 将字段姓名绑定到控件Tex
19、tBox1的Text 属性:基本情况.姓名)第37页/共53页39浏览记录,各命令按钮的Click 事件代码为:首记录:Me.BindingContext(objDSet, 基本情况).Position = 0上一条:Me.BindingContext(objDSet, 基本情况).Position -= 1下一条:Me.BindingContext(objDSet, 基本情况).Position += 1尾记录:Me.BindingContext(objDSet, 基本情况).Position = Me.BindingContext (objDSet, 基本情况).Count-1 第38页/
20、共53页40数据库编辑操作常见的编辑操作就是对数据的增、删、改。使用命令对象直接对数据源进行操作,方法如下: CommandText属性 设置SQL语句 调用Execute方法 执行SQL语句 ExecuteReader 返回DataReader结果集 ExecuteNonQuery 不返回数据的SQL命令(增、删、改) ExecuteScalar 返回单个数据的SQL命令(例对数据的统计、求和) 第39页/共53页41使用Insert语句插入一条记录到数据源。例如:Insert into 基本情况(姓名, 学号) Values (李力, 50101)实际参数可通过文本框输入,可在Values
21、短语中使用标记传递实参值:Insert into 基本情况(姓名, 学号) Values (name, num)而参数定义的语法为:Dim 参数名 As new OleDBparameter(sql查询或更新字符串中的映射名,数据类型,长度) 第40页/共53页42例11.5 在例11.4的基础上添加增加记录、删除记录、修改记录按钮,当单击“增加”按钮时,先清空文本框,并将按钮提示改变成“确认”;当在文本框输入数据后,再单击“确认”,将文本框内输入的数据构成一条记录插入到数据源、重新填充数据集并恢复按钮提示。 代码说明第41页/共53页43删除数据源内的记录使用Delect语句Delect 基
22、本情况 Where 学号 = 50102实参50102通过文本框输入。要用输入值构成删除条件,除了采用参数传递方法外,也可用字符连接运算符拼接变量形成条件,例如:Delect 基本情况 Where 学号 = & TextBox2.Text 注意:如果字段的类型为字符型,则输入值的两侧加上单引号:Delect 基本情况 Where 学号 = & TextBox2.Text & 字段的类型为日期型,将单引号改为#第42页/共53页44删除数据集内的行使用Rows对象的Delete方法例:删除Tables(“基本情况”)中的第三条记录:objDSet.Tables (基本情况
23、 ).Rows (2).DeleteDelete方法并不真正实现删除,而只是在Rows集合中对指定的行作删除标记,直到数据集对象调用AcceptChanges方法的时候,才真正被删除;如果是RejectChanges方法被调用,那么Delete方法删除的数据行对象将被恢复。例11.6 为例11.5中删除按钮添加代码。 代码说明第43页/共53页45修改数据源中的记录使用Update语句Update 基本情况 Set 专业= 计算机 Where 学号 = 50102修改程序编写与增加记录类似,其关键是: 使用参数传递或字符动态拼接的方法将新的数据传递到Update 语句 能在数据源中定位要更新的
24、记录(通常可使用关键字段作为定位条件)对于数据集,数据绑定结构通常是双向的,能自动将更改从数据绑定控件发送到数据集。例11.7 为修改按钮添加代码 代码说明第44页/共53页46 方法一 通过命令对象执行SQL语句,从数据源中获取信息,查询条件由Select语句的Where短语构成,使用And与Or逻辑运算符组合出复杂的查询条件 方法二 使用数据集的数据视图(DataView)的筛选功能 第45页/共53页47数据视图(DataView)的主要方法与属性 方法与属性方法与属性功能描述功能描述使用示例使用示例Sort方法方法对对DataView包含包含的数据进行排序的数据进行排序objDataV
25、iew.Sort=姓名姓名Find方法方法搜索指定的数据搜索指定的数据行行(必须先排序必须先排序)rec=objDataView.Find(李力李力)RowFilter属性属性筛选满足条件的筛选满足条件的数据行数据行objDataView.RowFilter=成绩成绩80第46页/共53页48模糊查询使用运算符Like,用百分号%来代替任意个不确定的内容,用下划线_代替一个不确定的内容。例如,“姓名 Like 张%”将查询所有张姓的人员,而“姓名 Like 张_” 查询以“张”开头,只有两个字的记录。例11.8 设计一个应用程序,演示不同的查询功能 代码说明第47页/共53页491预备知识二进制大型对象(Binary Large Object,BLOB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版南京绿色建筑项目能源合同管理协议4篇
- 2025年度特色苗木种植与市场推广服务合同4篇
- 2025年度铝合金门窗企业战略合作伙伴合同范本
- 2025年度时尚服饰区域分销代理合同
- 2025年度高校教授职务评审及聘任合同4篇
- 二零二五年度土石方工程地质灾害预警与应急处理合同
- 二零二五年度冷链仓储与运输一体化服务合同4篇
- 二零二五年度棉花产业安全生产管理合同4篇
- 2025版美发师创业孵化项目聘用合同2篇
- 二零二五年度奢侈品销售团队聘用合同范本
- 第1课 隋朝统一与灭亡 课件(26张)2024-2025学年部编版七年级历史下册
- 2025-2030年中国糖醇市场运行状况及投资前景趋势分析报告
- 冬日暖阳健康守护
- 水处理药剂采购项目技术方案(技术方案)
- 2024级高一上期期中测试数学试题含答案
- 盾构标准化施工手册
- 天然气脱硫完整版本
- 山东省2024-2025学年高三上学期新高考联合质量测评10月联考英语试题
- 不间断电源UPS知识培训
- 三年级除法竖式300道题及答案
- 人教版八级物理下册知识点结
评论
0/150
提交评论