《Visual C# NET程序设计基础》课件010.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《Visual C# NET程序设计基础》课件010.ppt》由用户(kld)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual C# NET程序设计基础 Visual C# NET程序设计基础课件010 Visual NET 程序设计 基础 课件 010
- 资源描述:
-
1、第10章 使用ADO.NET进行数据库访问第第10章章 使用使用ADO.NET进行数据库访问进行数据库访问10.1 数据库概述数据库概述10.2 ADO.NET的基本组件的基本组件10.3 使用使用ADO.NET10.4 综合案例:图书管理系统综合案例:图书管理系统使用使用 DataGrid显示和操作数据显示和操作数据本章小结本章小结练习与作业练习与作业上机部分上机部分(十十)第10章 使用ADO.NET进行数据库访问 学习目标 解释ADO.NET 掌握ADO.NET基本组件的使用 掌握基本数据库编程的步骤和方法第10章 使用ADO.NET进行数据库访问10.1 数数据据库库概概述述 数据库,
2、顾名思义,就是存放数据的地方。在计算机中,数据库是数据和数据库对象的集合。数据库对象主要包括表、视图、存储过程、触发器等等,要管理数据库必须使用相应的管理系统。数据库管理系统(DBMS)就是一套计算机应用软件系统,主要作用是建立用户与数据库之间的信息处理通道,让用户能通过DBMS来存取和操作数据库中的数据,这些数据包括建立数据库、建立表格、添加、更新和删除数据以及查询数据等。目前通用的数据库管理系统主要有Access、SQL Server、Oracle、MySQL等。在使用数据库之前必须要理解一些基本的概念。第10章 使用ADO.NET进行数据库访问 1关系模型关系模型 关系模型把世界看做是实
3、体(Entity)和联系(Relationship)构成的。所谓实体就是指现实世界中具有自身独有的特征或属性并与其他实体保持联系的对象。在关系模型中实体以表的形式来表现,表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。所谓联系就是指实体之间的关系或对应关系。联系可分为三种:一对一的联系。如:一个学生只有一个学号,姓名学号为一对一的联系。第10章 使用ADO.NET进行数据库访问 一对多的联系。如:相同班级的学生有很多个,班级学号为一对多的联系。多对一的联系。如:很多学生有同一个班级,学号班级为多对一的联系。通过联系就可以用一个实体的信息来查找另一个实体的信息。在图10-1中,
4、三张表组成了一个关系模型,每张表都是一个实体。从图10-1(c)中可看出,最终的结果依靠两张原始表的属性关系(如箭头所示)即学号的唯一标识得出。关系模型能够得到广泛使用的原因在于它的灵活性及操作的简单。如Microsoft Access数据库、SQL Server数据库都是基于这种模型。第10章 使用ADO.NET进行数据库访问图10-1 关系模型第10章 使用ADO.NET进行数据库访问 2关系数据库对象关系数据库对象 1)表 表是数据库的对象,表包含数据库的数据。一个数据库由一个或多个表组成,每个表存储一些相关的数据。数据库中的表与表之间有时可能存在着关联。表是一个分别排成行跟列的相关记录
5、的集合,类似于二维数组或Excel中的电子表格。数据就是以行和列的形式进行存储,每个列表头就是一个字段,每一行存储实际的数据。在设计表时我们可以根据功能为表创建各种列,如针对图10-1所示的学生信息表,采用Access数据库,设计了三列,分别为学号、姓名和所属班级。请看图10-2所示学生信息表的具体结构。第10章 使用ADO.NET进行数据库访问图10-2 学生信息表结构 第10章 使用ADO.NET进行数据库访问 2)记录和字段 记录是表示数据的集合。记录在逻辑上相当于表的行。例如,学生信息表的一条记录可能就包含某个学生的信息。记录是由多个字段组成的。记录中的每个字段都包含了关于该记录的单条
6、信息。例如,学生信息表记录有学号、姓名和所属班级等字段。图10-3对学生信息表添加了一些记录。第10章 使用ADO.NET进行数据库访问图10-3 学生信息表第10章 使用ADO.NET进行数据库访问 3)主键 主键唯一标识了表的每一行。主键可以是一个字段,也可以是几个字段的组合。对表中的每一行(记录)来说,主键的值都是惟一的。例如,“学号”字段是“学生信息表”的主键,因为任何两个学生的学号都不相同。在Access中,可以通过鼠标操作的方式为表添加一个主键,如图10-4中学号上有个标识。第10章 使用ADO.NET进行数据库访问图10-4 具有主键的学生信息表第10章 使用ADO.NET进行数
7、据库访问 4)外键 外键是由一个或者多个字段组成的,而这些字段又是其他表的主键(列)。外键描述了表与表之间的关联方式。5)关系 关系是建立在两个表的公共字段(列)之间的一种关联。关联可以是一对一、一对多或者多对多。关系使查询结果中可以包括来自多个表的数据。例如,图10-5所示的班级信息表和学生信息表之间的一对多关系将允许查询返回相关专业的所有学生。第10章 使用ADO.NET进行数据库访问图10-5 表的关系 第10章 使用ADO.NET进行数据库访问 3SQL语言语言 前面简单地介绍了一下数据库的模型及一些基本的术语,学到这里不知读者有没有想过,怎么样才能在一个程序中把数据放进数据库呢?如何
8、得到数据库的数据呢?如何去更新、修改数据库里面的数据呢?解决这些问题其实很简单,就是利用SQL语言。SQL(Structured Query Language)全称是“结构化查询语言”,是数据库中使用的标准数据查询语言。早前美国ANSI对SQL进行规范后作为关系数据库管理系统的标准语言,后来得到国际标准化组织(ISO)的支持已成为国际标准。SQL是一种高级的非过程化语言,从名称上看,SQL适合于编写查询语句,可实际上它实现的功能远远不止于查询,如创建、删除、修改、更新等第10章 使用ADO.NET进行数据库访问一些对数据库的操作都能得心应手。接下来针对项目中的数据表来编写SQL语句来实现对表数
9、据的查找、插入、更新、删除等操作。1)Create table语句 Create table 语句用于在数据库中建立一张新表,包括表的结构。在Access数据库中,读者可以使用图形化界面直接创建及修改。也可以通过SQL语句灵活实现。这里只要了解利用语句是如何编写就行了。请看下面对Create table语句的定义:Create table 表名(列名1 类型,列名2 类型,其他参数)在数据库中需要创建一个名称为“学生成绩表”的表格:Create table学生成绩表(学号 int PRIMARY KEY,姓名 char(10),高等数学integer,数据结构integer,大学语文 inte
10、ger,体育 integer);第10章 使用ADO.NET进行数据库访问 2)Alter table语句 Alter table语句用于修改表的结构,语句定义如下:Alter table 表名 ALTER COLUMN 列名 类型|ADD 列名 类型|DROP COLUMN 列名 前面创建了一张学生成绩表,现在用Alter table语句来修改学生成绩表的结构:Alter table 学生成绩表 ADD 性别 char(2);Alter table 学生成绩表 ALTER COLUMN 姓名 char(8);说明说明:在上面的两个范例中,利用Alter table语句向学生成绩表中添加一个名
11、为“性别”的列,并把学生成绩表名为“姓名”的列的数据类型大小改为8。第10章 使用ADO.NET进行数据库访问 3)INSERT INTO语句 前面利用Create table语句为学生信息管理项目创建了表的结构,现在还需要往表里存放数据、读取数据及修改数据等操作。INSERT INTO命令语句就是用来向表中的列插入值。INSERT INTO 语句定义如下:INSERT INTO 表名(列名1,列名2,)VALUES(常量1,常量2,)其中(列名1,列名2,)可省略。例句:INSERT INTO 学生成绩表 VALUES(0001,李明,88.5,69,75,90);学号 姓名 高等数学 第1
12、0章 使用ADO.NET进行数据库访问 说明说明:在上述例句中,利用INSERT INTO语句向学生成绩表的各列都插了值,现表中已有一行值。注:括号后面的值应该跟所定义表的结构的顺序一致。如果表的结构中有定义字符的数据类型,应使用单引号。4)UPDATE语句 利用UPDATE 命令语句可用于更新表中的数据。定义如下:UPDATE 表名 SET 字段=值,字段=值,WHERE 条件语句 例句1:UPDATE 学生成绩表 SET 体育=85 WHERE 学号=0001;例句2:UPDATE 学生成绩表 SET 体育=85;第10章 使用ADO.NET进行数据库访问 说明说明:在上面的两个例句中,利
13、用UPDATE语句对学生成绩表进行更新。例句1把学生成绩表的学号为0001的学生的体育成绩更改为85分。例句2把学生成绩表的每位学生的体育成绩都更改为85分。不使用WHERE子句UPDATE命令将更新表中的所有行。5)DELETE语句 利用Delete语句可用于删除表的记录。定义如下:DELETE FROM 表名 WHERE 条件语句 请看范例:DELETE FROM学生成绩表WHERE 学号=03002;解释:利用DELETE语句把学生成绩表的学号为03002的学生的记录删除。第10章 使用ADO.NET进行数据库访问 6)SELECT语句 对数据库的数据进行查询是SQL语言的核心部分,语句
14、的一般格式为:SELECT 目标列 FROM 表名 WHERE条件语句 GROUP BY 列名1 HAVING 内部函数表达式 ORDER BY 列名2 ASC/DESC 例句(1):SELECT 学号 FROM 学生成绩表;说明:使用SELECT语句查找学生成绩表的所有学号的值。第10章 使用ADO.NET进行数据库访问 例句(2):SELECT 学号,姓名 From 学生成绩表;说明:使用SELECT语句查找学生成绩表的所有学号、姓名的值。例句(3):SELECT*FROM 学生成绩表;说明:使用SELECT语句查找学生成绩表的所有记录,即学生成绩表中的所有行。“*”代表所有列。接下来用限
15、定词、通配符、函数及操作数等来对SELECT语句进一步扩充。通配符与多重条件查询 通配符使用LIKE或NOT LIKE操作数进行模糊条件查询,以判断列值是否与指定的字符串格式相匹配。常用通配符如表10-1所示。第10章 使用ADO.NET进行数据库访问表表10-1 常用通配符常用通配符通 配 符 描 述%条件包含零个或多个字符的任意字符串 _(下划线)条件包含任何的且单个的字符 如指定在范围a-c或集合abc中的任何单个字符 如指定不属于范围a-c或集合abc的任何单个字符 第10章 使用ADO.NET进行数据库访问 例句(4):SELECT*FROM学生成绩表WHERE 姓名LILE J%;
16、说明:使用SELECT语句查询学生成绩表所有列值首字符为“J”的值。上面的插入、更新、删除、查找命令为SQL语句最为基础也是最常用的命令,事实上在一般项目中用得多的就是SELECT语句命令了,而其他的的插入、更新等命令则不必编写,因为可以借助ADO.NET技术的CommandBuilder对象自动生成。如果读者有兴趣的话可以再进一步学习有关SQL语句命令的扩充。第10章 使用ADO.NET进行数据库访问 7)DROP、DELETE、TRUNCATE TABLF语句的区别 DROP、DELETE、TRUNCATE TABLE语句都为删除命令语句,但它们之间的使用是有区别的。DROP语句用于删除整
17、个表格,即删除表的数据跟表结构;DELETE语句用于有选择地删除表中的行值;TRUNCATE TABLE语句用于删除整个表所有行的值,但不删除表结构。语法定义如下:DROP TABLE 表名;DELETE FROM 表名 WHERE 条件语句;TRUNCATE table 表名;下面通过一些SQL语句示例实现对表中数据进行操作。第10章 使用ADO.NET进行数据库访问 先创建一个名STUDENT的表,并向表插入三行值(利用CREATE TABLE、INSERT INTO语句)。Create table STUDENT(学号 int,姓名 char(8),年龄 int);INSERT INTO
18、 STUDENT VALUES(03001,张三,20);INSERT INTO STUDENT VALUES(03002,李四,21);INSERT INTO STUDENT VALUES(03003,王五,23);例句(1):DELETE FROM STUDENT WHERE 学号=03002;说明:删除STUDENT表中学号为03002学生的记录。例句(2):TRUNCATE TABLE STUDENT;说明:删除STUENDT表的所有行,即表中的所有学生信息全部删除。第10章 使用ADO.NET进行数据库访问 例句(3):DROP TABLE STUDENT;说明:删除STUDENT表
19、。注意:DROP TABLEI不能删除有外键约束引用的表,必须先将外键约束删除。TRUNCATE TABLE同样不能用于有外键约束引用 的表,在这种情况下,就要用到不带WHERE子句的DELETE 语句了。8)使用AND、OR、NOT关键字进行多重条件查询 例句:SELECT 姓名 FROM STUDENT WHERE 学号=03003 AND 年龄=22;说明:查询STUDENT表中列为姓名的学号为03003且年龄为22的值。第10章 使用ADO.NET进行数据库访问 注意注意:在运算过程中NOT优先级最高,次之AND最后为OR,但可通过加括号来改变。9)使用ALL、DISTINCT、TCO
20、P限定词 TOP关键字用来限制显示查询返回得到的行数。例句(1):SELECT TOP2*FROM STUDENT;说明:查询STUDENT表的所有行且只显示前两行。ALL关键字用来显示查询返回得到的所有行(包括重复的行)。例句(2):SELECT ALL 学号 FROM STUDENT;说明:查询STUDENT表的学号字段所有行的值。DISTINCT关键字用来删除查询得到的重复值的行。第10章 使用ADO.NET进行数据库访问 例句(3):SELECT DISTINCT 学号 FROM STUDENT;说明:查询STUDENTG表的学号字段不重复值的所有行的值。10)使用NOTBetween
21、AND与IN关键字 BetweenAND用于查找字段值在或者不在指定范围内的值。例句(1):SELECT*FROM STUDENT WHERE 年龄 Between 20 AND 23;说明:查询在STUDENT表中年龄介于2023之间的所有行。第10章 使用ADO.NET进行数据库访问 例句(2):SELECT*FROM STUDENT WHERE 年龄 NOT Between 20 AND 23;说明:查询在STUDENT表中年龄不介于2023之间的所有行。IN关键字用来查找字段值属于在指定集合的范围内的值。例句(3):SELECT*FROM STUDENT WHERE 学号 in(030
22、01,03003);说明:查询在STUDENT表中学号为03001跟03003的所有行。11)使用集合函数 集合函数用于统计个数及计算数值,功能如表10-2所示。第10章 使用ADO.NET进行数据库访问表表10-2 常用集合函数表常用集合函数表 函 数 功 能 说 明 COUNT(ALL|DISTINCT*)统计所有行数 COUNT(ALL|DISTINCT)统计指定列的行数 SUM(ALL|DISTINCT)计算表达式所有值的和 AVG(ALL|DISTINCT)计算表达式的平均值 MIN(ALL|DISTINCT)计算表达式的最小值 MAX(ALL|DISTINCT)计算表达式的最大值
23、第10章 使用ADO.NET进行数据库访问 说明:ALL与DISTINCT是可选项,ALL计算时忽略重复,DISTINCT则不重复。COUNT(*)会返回所有行包括值为空(NULL)的记录行数,COUNT(field)则不返回值为空的记录行数。例句:SELECT COUNT(姓名)FROM 学生成绩表 WHERE 高等数学80;说明:查询学生成绩表中高等数学80分以上的学生的姓名。12)使用ORDER BY、GROUP BY、HAVING子句 OREDER BY子句用于对查询所得行进行排序,关键字ASC为升序,DESC为降序,默认则为升序排序;GROUP BY子句用于对查询所得行按某一列或多列
24、值进行分组显示,值相等的则为同一组;HAVING子句则用于在使用GROUP BY子句进行分组后对行进行判断筛选。第10章 使用ADO.NET进行数据库访问 例句(1):SELECT*FROM STUDENT ORDER BY 年龄DESC;说明:查询STUDENT表的所有记录并以年龄字段显示为降序排序。例句(2):SELECT 姓名 FROM 学生成绩表 GROUP BY 学号 HAVING 高等数学60;说明:查询STUDENT表中高等数学分数60分以上的学生的姓名,并以学号字段进行分组显示。注意注意:HAVING子句应始终在GROUP BY 子句之后使用。上面所讲的SQL语法只是一些比较简
25、单、常用的语句。如果读者想再对SQL语言进一步深入学习、探索的话,应该看一些其他关于SQL方面的书籍,如SQL SERVER等。第10章 使用ADO.NET进行数据库访问10.2 ADO.NET的基本组件的基本组件 无论需要怎样使用数据,都应该理解ADO.NET中数据方法的一些基本概念。你也许永远不需要知道数据处理的一些细节,但是理解ADO.NET中的数据结构和主要数据组件,以及理解各部分如何组合到一起,都会对你有所帮助。本节并不讲述详尽的细节,而是介绍 ADO.NET 中与数据集成相关的概念。1定义定义 ADO.NET 是.NET Framework架构中一组用于数据操作的类。它提供了为非连
展开阅读全文