Visual Basic.NET程序设计课件 第10章 数据库应用.ppt
《Visual Basic.NET程序设计课件 第10章 数据库应用.ppt》由会员分享,可在线阅读,更多相关《Visual Basic.NET程序设计课件 第10章 数据库应用.ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 数据库应用,10.1 数据库的概念 10.2 建立数据库 10.3 SQL语言简介 10.4 VB.NET的数据库操作,使用文件可以永久保存数据,实现数据的重用和共享。文件的组织由生成文件的程序决定,其他人要使用该文件就必须知道它的格式、数据的类型、合法值的范围等。 当数据量越来越大、数据共享和数据安全的要求越来越高时,文件系统的固有缺陷就表现得越来越明显。 为了解决这个问题,数据库系统在20世纪60年代应运而生,出现了多种逻辑结构的数据库。 根据数据的逻辑结构把数据库分成层次、网状、关系和对象4种模型。 层次和网状数据库现在已很难见到。对象式的数据库检索效率高,与人类思维最接近,是
2、目前数据库技术研究的热点,但还不够成熟。 关系数据库简单、易用,理论基础坚实,是当今数据库技术的主流。 本章首先对关系数据库作简单描述,然后讲述在VB.NET程序中如何对关系数据库中的数据进行操作。,一个数据库系统由数据库和数据库管理系统(Data Base Management System,DBMS)组成。 数据库中的数据是存放在外存储器中的永久性数据,使用时必须把它调入内存。 数据库管理系统是一个专门的管理软件,负责数据的检索、增加、删除与修改,维护数据的一致性与完整性,提供正确使用的各种机制。 应用程序不能直接使用数据库中的数据,只能提出访问数据的请求,由DBMS完成对数据的操作。,1
3、0.1 数据库的概念,关系数据库的逻辑结构是二维表的集合。这些二维表是有应用语义的。 记录:表中的一行,描述事物状态的一组数据; 字段:表中的一列,描述事物的某个特征(属性); 主键:能够唯一地标识一个记录的字段(主关键字); 外键:表之间语义相同且取值范围也相同的字段。外键是表之间联系的字段。 例如,教务数据库可以包含以下3个表: 教师(教师号,教师姓名,系,教研组) 课程(课程号,课程名,学时,学分,层次) 排课(班级号,课程号,教师号,上课时间,课室号) 括号内是每个表的字段名。 “教师号”可以作为教师表的主键。课程表中“课程号”是主键。排课表中的主键是字段集合(班级号,课程号)。 排课
4、表的主键“教师号”是教师表的外键。,10.2 建立数据库,建立Access数据库的方法:, 启动Microsoft Access 2007,单击左上角的“Office按钮”,从“文件”菜单中选择“新建”菜单项; 或者直接单击界面上“空白数据库”图标,设定新建数据库的路径和名称。 如图10.1所示,建立一个名为“教务”的数据库,系统自动添加文件后缀.accdb。, 单击“创建”按钮确定后,进入数据库的编辑界面。图中显示的是第一个默认名为“表1”的数据表视图,它是一个空表。 选择“视图”菜单的“设计视图”菜单项,在“另存为”对话框中输入数据表的名称。如图10.2所示,输入第一个表的名称为“教师”。
5、, 确定数据表名称后,打开表设计窗口(如图10.3所示),按设计要求输入字段名称,从“数据类型”下拉列表中选择适当的类型,并且在“字段属性”区域中设置字段的相关属性。,教务数据库各表的字段名称、数据类型和属性, 按照以上方法,建立好3个表的结构之后,选择“视图”菜单的“数据表视图”菜单项,或者双击表名,可以打开数据输入窗口,在每列中输入相应类型和格式的数据,即可完成数据表的建表工作。 图10.4是完成输入数据的教师表。,SQL是Structured Query Language(结构化查询语言)的缩写,是最重要的关系数据库操作语言。 SQL语言基本上独立于具体的数据库,独立于所使用的计算机、网
6、络与操作系统。 基于SQL的DBMS系统产品可以运行在各种计算机系统上,具有良好的可移植性。 SQL语言不是一个完整的程序设计语言。它没有用于控制程序分支的GOTO语句,也没有用于控制循环的DO或For语句,它主要包括创建、更新和操作数据库中的数据的语句。,10.3 SQL语言简介,SQL语句分两大类:DDL(Data Definition Language,数据定义语言)语句和DML(Data Manipulation Language,数据操纵语言)语句。 DDL语句用于创建和定义新的数据库表、字段和索引。DML语句用于检索、更新和插入数据。 从用户的角度看,SQL的DDL语句(见表10-
7、4)有3类,即CREAT(表定义)、ALTER(表修改)和DROP(表删除)。 SQL的DML语句(见表10-5)包括数据检索语句(SELECT语句)和数据更新语句(INSERT语句、UPDATE语句和DELETE语句)两大类。,10.3.1 SQL的语句,DDL语句,DML语句,功能:返回一张表。该表由满足检索条件的记录排列而成。 格式: SELECT DISTINCT FROM , WHERE GROUP BY HAVING ORDER BY ASC/DESC SELECT把所要选择查看的字段(即返回的表中所要包含的字段)的名字排列在关键字“SELECT”后面,各字段名之间用逗号“,”分隔
8、。 DISTINCT表示删掉查询结果中重复的行。,10.3.2 SQL中的数据操作,1数据检索语句(SELECT语句),SQL子句,例10-1,SELECT语句应用实例。, 查看教师表中的全部数据。 SELECT * FROM 教师 在此,* 代表全部字段的字段名。 等价于: SELECT 教师号,教师名,系,教研组 FROM 教师 检索的结果返回一张与表10-1内容一样的表。 查看教师表中的全部教师的编号、姓名和所在系。 SELECT教师号,教师名,系 FROM 教师 检索的结果返回一张表,其内容是在表10-1基础上去掉“教研组”列。, 在教师表中检索计算机系的教师。 SELECT * FR
9、OM 教师 WHERE 系=计算机 结果返回一张内容如表10-7所示的计算机系的教师表。, 在课程表中查找学时数大于75、小于90的课程的课程名、学时数和学分数。 SELECT 课程名,学时,学分 FROM 课程 WHERE 学时75 And 学时90 结果返回一张内容如表10-8所示的结果表。, 在教师表中收集姓梁的教师的材料 SELECT * FROM 教师 WHERE 教师名 LIKE 梁% 在上述语句中,与LIKE关键字匹配的字符“%”代表任意个字符。 结果返回一张内容如表10-9所示的表。, 查询星期二第3、4节上课的教师名和课程名 SELECT排课.上课时间,教师.教师名,课程表.
10、课程名 FROM排课,教师,课程 WHERE 排课.上课时间=“周二3-4” And课程.课程号=排课.课程号 And 教师.教师号=排课.教师号 为了区别不同表中的同名字段,可以使用格式: . 结果返回一张如表10-10所示的有两个相同行的表。,要使返回的表中没有相同的行,在该查询语句的SELECT后面要加上DISTINCT, 在课程表中使用“GROUP BY”,按课程名分组。 SELECT 课程名, SUM(学时), SUM(学分) FROM 课程 GROUP BY 课程名, 在课程表中使用“GROUP BY”按课程名分组后,使用HAVING提取同组课程学时之和大于70的行。 SELECT
11、 课程名, SUM(学时), SUM(学分) FROM 课程 GROUP BY 课程名 HAVING SUM (学时)70,2数据更新语句,(1)UPDATE语句 功能:对合乎条件的记录,改变其中一个或多个字段(列)的值。 格式: UPDATE 表名SET = , = WHERE (2)INSERT语句 功能:添加新的记录到表中。 格式: INSERT INTO ( ,) VALUES ( , ) (3)DELETE语句 功能:删除表中记录。若无WHERE语句则删除表中全部数据,但表仍然存在。 格式:DELETE FROM WHERE ,例10-2,数据更新示例。, 把课程表中每门课程增加18
12、学时,增加1个学分 UPDATE 课程 SET 学时=学时+18,学分 = 学分+1 把0102号课程星期二3,4节的课改为星期一3、4节,地点不变。 UPDATE 排课 SET 上课时间=周一3-4 WHERE 课程号 =0102 And 上课时间 = 周二3-4 在教师表中增加一个教师。 INSERT INTO 教师(教师号,教师名,系,教研组) VALUES (1031,余佩玉,电信工程,系统) 删除排课表中全部数据。 DELETE FROM 排课 从教师表中删除0873号教师的记录。 DELETE FROM 教师 WHERE 教师号 =0873,10.4 VB.NET中的数据库操作,.
13、 NET框架提供一套面向对象的数据库访问工具,称为ADO.NET。 ADO是ActiveX Data Object的缩写,它提供一个允许通过代码访问数据库的应用程序接口。 ADO.NET对象模型的两个核心组件是DataSet对象和 .NET数据提供程序。 DataSet对象是一个数据缓冲,其结构与关系数据库结构一致。当程序需要操作数据库时,连接外部数据源生成DataSet对象的数据。程序对本地缓存数据进行操作,而不是直接对数据库操作。若需要把操作结果保存到数据源中,程序需要重新连接数据源,执行更新操作。 .NET数据提供程序是数据库的访问接口,它包括Connection、DataReader和
14、DataAdapter等一组对象,负责建立和连接数据库操作。,ADO.NET主要使用SQL Server.NET或OLE DB.NET数据提供程序来访问数据源。 其中,SQL Server.NET数据提供程序用于访问SQL Server 7.0或更新版本的数据库,如SQL Server 2000。 OLE DB.NET数据提供程序主要用于访问Access、Oracle、Sybase、SQL Server 6.5或更老版本的数据库,以及其他数据源。 .NET框架的各种语言都可以在代码中使用ADO.NET接口来编写操作数据库的应用程序。并且,.NET框架提供了一套可视化的数据库工具(Visual
15、Datebase Tools),包括数据库关系图设计、查询设计和表设计。 应用这些工具,程序员几乎不必编写代码,就可以操作数据库。本章将通过实例介绍这些工具的应用。 本节沿用10.2节建立的教务数据库,演示如何使用IDE可视化数据库工具和向导,连接数据库、设计数据库和查询数据库。,10.4.1 连接数据库,连接数据库是指把外部已经建立的数据源导入应用程序,以便应用程序可以方便地访问数据库的文件。,1创建项目,例10-3,在窗体显示教务数据库中的教师表。,创建一个新的Windows窗体应用程序,项目名称和窗体的Text属性都设置为“显示数据表”。,2添加数据访问控件,集成开发环境工具箱“数据”控
16、件列表中包含了一组操作数据库的控件。选用带有OleDb前缀的控件。,3添加数据源,选择IDE主菜单的“数据”菜单项,从下拉列表中选择“添加新数据源”,系统弹出“数据源配置向导”对话框,将可视化地引导用户完成数据源连接的工作。,(1)选择数据源类型,在如图10.7(a)所示的“选择数据源类型”对话框中,选择数据的来源为“数据库”,在如图10.7(b)所示的“选择数据库模型”对话框中选择“数据集”。,(2)添加连接数据库,在如图10.8(a)所示的“选择您的数据连接”对话框中,单击“新建连接”按钮。 在“添加连接”对话框中选择已经建立的数据库文件,如图10.8(b)所示。,系统弹出确认消息框,如图
17、10.8(c)所示,询问是否把数据文件复制到当前项目中。根据需要复制,单击“是”按钮后,“数据源”下拉列表中将出现连接成功的数据库文件名。,(3)保存连接字符串,如图10.9所示,询问用户是否将连接字符串保存到应用程序配置文件中。连接字符串指定了一个数据库的文件路径,以及一些用于确定如何访问数据库的额外设置。保存连接字符串便于以后修改设置。,(4)选择在DataSet中包含的数据库对象,从图10.10“选择数据库对象”对话框的树状列表中,单击复选框,选取需要的数据表,把这些数据提取到DataSet的缓冲区。,完成上述操作后,数据库就是项目的组成部分了。从图10.11看到,解决方案视图中出现了“
18、教务DataSet.xsd”节点。,10.4.2 数据库设计工具,除了利用数据库管理系统,如10.2节介绍的应用Access建立数据库之外,.NET还提供了基本的数据库设计工具。,单击图10.11解决方案视图的“教务DataSet.xsd”节点,IDE打开数据库设计视图,如图10.12所示。,每个表都具有3种不同的功能: 标题栏用于显示表的名称。 行选择器可以通过单击行选择器来选择表中的数据表的列。如果该列是表的主键,则行选择器将显示一个键符号。 属性列帮助管理关系图的大小和布局。,用右键打开标题栏或行选择器的快捷菜单,可以完成数据库的关系设计、行列编辑以及建立查询等工作。,图10.13是添加
19、了表之间关系的逻辑视图。,若要添加新表,用右键单击设计视图的空白处,从快捷菜单中选择“添加”“数据表”菜单项,IDE将自动添加一个默认名称的表,用户可以修改它的名称,添加字段以及设计与其他表的关系。,图10.13右下方是一个默认名为“DataTable1”添加的新表。要删除这个表,只要选取它,按Delete键就可以了。,IDE自动为每一个数据表生成了一个TabelAdapter对象以及一个基本查询。 例如,教师表的第二个标题栏是“教师TabelAdapter”,最后一行就是把基本查询封装而成的方法名称。 教师表的两个基本方法: 用教师TableAdapter的SELECT命令的结果填充关联数据
20、表 教师TableAdapter.Fill 返回一个用数据填充了的新DataTable 教师TableAdapter.GetData(),选择快捷菜单中的“配置”菜单项,将打开“TabelAdapter配置向导”对话框,可以看到自动生成的SQL语句,如图10.14所示。,利用这个对话框,可以输入和修改SQL语句,也可以单击“查询生成器”按钮,进入查询生成器窗口,可视化地编辑SQL语句。,10.4.3 显示数据表,1显示一个数据表,选择IDE主菜单的“数据”“显示数据源”菜单项,IDE出现如图10.15所示的数据源视图。,从数据源视图把教师表节点拖放到窗体上。IDE在窗体上生成了两个控件: “教
21、师BindingNavigator”控件 “教师DataGridView”控件 另外还生成了几个出现在组件托盘中的控件。这些控件的名称由IDE自动生成。,从设计视图可看出,控件标题栏设置显示为字段名称,可以通过属性表的Columns属性修改。 数据要在程序运行时才从数据库中提取并在DataGridView控件中显示出来。,标题栏下的按钮条是一个工具栏容器BindingNavigator,其用户界面由一系列ToolStrip的按钮、文本框和静态文本元素组成,用于实现大多数常见的数据相关操作(如添加数据、删除数据和在数据中导航)。 BindingNavigator控件通常与BindingSourc
22、e控件成对出现,用于浏览窗体上控件(此例为DataGridView控件)显示的数据记录,并与它们交互。,生成和运行项目,可以看到如图10.17所示的结果。,在这个自动生成的程序中,利用DataGridView控件和BindingNavigator控件中的按钮,可以浏览、修改教师表,可以插入、删除记录和保存数据表。,2数据绑定,将显示控件连接到数据源的技术称为数据绑定。绑定后的控件可用于对数据进行修改和保存。 例如,把DataGridView控件绑定到数据库中一个表的DataSet上,这个过程.NET框架使用一组组件(如表10-13所示)实现。,(1)DataSet类对象,组件托盘中的“教务Da
23、taSet”对象是IDE在项目中添加教务数据库时生成的DataSet类对象,它模仿了关系数据库的结构,从数据源窗口可以看到对象的数据结构。 DataSet对象表示一个数据缓冲,提供的数据服务称为“断开缓存”。 DataSet对象可以由IDE自动生成,也可以用代码创建,DataSet对象包含3个常用的集合: DataTableCollection(数据表集合) DataRowCollection(行集合) DataColumnCollection(列集合) 使用DataSet的属性和方法可以灵活地操作数据表,有兴趣的读者请参阅相关MSDN资源。,(2)TabelAdapter类对象,TabelA
24、dapter 类的对象“教师TabelAdapter” 是一个与教务数据库文件(即教务.accdb)进行交互的组件。 TabelAdapter 对象是数据库与DataSet对象之间通信的桥梁。 它用于传递各种SQL命令、把命令的执行结果填入DataSet对象。,(3)BindingSource类和DataGridView类对象,BindingSource类对象“教师BindingSource”和DataGridView类对象“教师DataGridView”用于标识一个数据源,把它绑定到相应的图形控件(如本例的BindingNavigator控件)上。 为了实现数据绑定,首先把“教师Bindin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual Basic.NET程序设计课件 第10章 数据库应用 Basic NET 程序设计 课件 10 数据库 应用
限制150内