第04章_数据库操作_第1页
第04章_数据库操作_第2页
第04章_数据库操作_第3页
第04章_数据库操作_第4页
第04章_数据库操作_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第04章数据库操作目录1. 典型案例2. SQL Server数据库基础3.ADO.NET操作数据库4. 数据源与数据绑定5. 实体数据模型操作数据库6.Linq7. 小结8. 习题战略性信息产业教育服务提供商联世界 育未来创新物联教育n 案例展现:WPF开发小区物业监控系统数据库操作n 【案例描述】n WPF开发小区物业监控系统中,实现与接,实现用户的注册和登录。n 【案例结果】数据库的连n WPF开发小区物业监控系统中,注册和登录的界面如图4-2所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-2 用户注册和登录战略性信息产业教育服务提供商联世界 育未来创新物联教育n 【案

2、例准备】n 在这个简单的综合案例中,会涉及到WPF中有关数据库等基础知识。下面就先来掌握这些知识点后,再开始本案例的编程实现吧!战略性信息产业教育服务提供商联世界 育未来创新物联教育目录1. 典型案例2. SQL Server数据库基础3.ADO.NET操作数据库4. 数据源与数据绑定5. 实体数据模型操作数据库6.Linq7. 小结8. 习题战略性信息产业教育服务提供商联世界 育未来创新物联教育2.1 SQL Server集成化开发环境n SQL Server是由Microsoft开发和推广的关系数据库管理系统(RDBMS。SQL Server 2012是Microsoft公司于2012年推

3、出的最新版本,包括企业版(Enterprise)、标 准 版 (Standard) 、 商 业 智 能 版 (Business Intelligence)等。SQL Server 2012可以运行于Windows 7 、 Windows Server 2008 、 Windows Vista等Windows系列的多种操作系统。SQL Server 2012作为大型网络关系型数据库管理系统,可用于大型的数据库管理、大型的联机事务处理、数据仓库及电子商务等。战略性信息产业教育服务提供商联世界 育未来创新物联教育SQL Server 2012提供图形化的数据库开发和管理工具,其中SQLServer

4、Management Studio(简称SSMS)就是 SQL Server提供的一种集成化开发环境。SSMS工具简易直观,可以使用该工具访问、配置、控制、管理和开发SQL Server的所有组件。SQL ServerManagement Studio将早起版本的SQL Server中所包含的企业管理器、查询分析器和Analysis Manager功能整合到单一的环境中,使得SQL Server中所有组件协同工作。SQL Server安装到系统中后,将作为一个服务由操作系统监控,而SSMS是作为一个单独的进程运行的。打开SSMS并且连接到SQL Server服务器,具体操作步骤如下:(1)单击

5、【开始】按钮,在弹出的菜单中该选择“所有程序 |Microsoft SQL Server 2012 | SQL Server ManagementStudio”菜单命令,打开 SQL Server的【连接到服务器】对话框,选择完相关信息之后,单击【连接】按钮,如图4-3所示战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-3“连接到服务器”对话框战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)连接成功进入SSMS的主界面,该界面显示了左侧的【对象资源管理器】窗口,如图4-4所示。模板资源管理器、解决方案与项目脚本是SSMS中的两个组件,可以方便用户在开发时对数据的操作

6、和管理。图4-4SSMS图形界面战略性信息产业教育服务提供商联世界 育未来创新物联教育2.2 数据库的日常维护操作n 数据库的日常维护操作包括数据库的创建与维护、数据表的创建与维 护、约束的创建与维护、索引的创建与维护。在本节中将简单介绍如 何使用SSMS(SQL Server Management Studio)图形化界面形式进行数据维护。n 1数据库的创建在SSMS中创建数据库可按以下步骤进行:n (1)启动SSMS集成环境,在“对象资源管理器”窗口中,选择“ 数据库”节点,弹出菜单中选择“新建数据库”命令,如图4-5所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-5 “

7、新建数据库”窗口战略性信息产业教育服务提供商联世界 育未来创新物联教育(2)在“常规”标签页上的数据库名称文本框中输入数据库名(如MonitorDB),设置其所有者,系统会自动生成数据库的数据文件和日志文件的逻辑名称,然后用户可以根据项目的实际需要分别对数 据文件和日志文件的初始大小、自动增长方式、容量限制和存储位置的设置。另外用户还可以按【添加】按钮新建二级数据文件,并将二 级数据文件保存在不同的路径下,以拓展数据的存储空间。(3)在“选项”标签页上设置数据库的排序规则、恢复模式等。在“文件组”标签上可以创建自定义文件组,并将之前创建的二级数据 文件存放在自定义文件组或主文件组上统一管理。(

8、4)单击“确定”按纽,数据库就创建好了,此时在对象资源管理 器中展开中可以看到新建的数据库MonitorDB。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 2数据库的维护n 对创建好的数据库,可以在SSMS集成环境下查看数据库的基本信息,并对其进行有效的管理和维护。n (1)查看数据库信息n 在对象资源管理器中,用鼠标右键单击要查看的数据库(如MonitorDB),在弹出式菜单中选择“属性”,出现如图4-6所示属性对话框,然后再分别选择“常规”、“文件”、“文件组”、“选项”、“权限”及“扩展属性” 等选项,查看和修改数据库的相关信息。战略性信息产业教育服务提供商联世界 育未来创新

9、物联教育图4-6 数据库的属性设置对话框战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)增加数据库的初始大小n 在“数据库属性”窗口中,选择“文件”选项,在图4-5 所示的“初始大小”数值框中输入或微调数据文件或日志文件的初始大小,然后单击【确定】按钮,保存数据文件或日志文件的初始大小设置。n (3)调整数据库文件的自动增长大小n 在图4-5中,通过单击数据文件或日志文件“自动增长”右边的按钮,弹出数据库空间自动增长设置对话框,如图4-7所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-7 数据库空间自动增长设置战略性信息产业教育服务提供商联世界 育未来创新物联

10、教育n (4)收缩数据库空间如果数据库初始代销或文件自动增长大小的值指定太大,而实际数据库占用的存储空间很小,那么就造成了存储资源的浪费,这时可以通过数据库的收缩功能进行调整。n 右击所选中的数据库,在弹出菜单中选择“任务 | 收缩 |数据库”命令,弹出如图4-8所示的“收缩数据库”窗口。选中“在释放未使用空间前重新组织文件”复选框,输入收缩比例,单击【确定】完成数据库的收缩。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-8 收缩数据库战略性信息产业教育服务提供商联世界 育未来创新物联教育(5) 数据库重命名在重命名数据库之前,应该确保没有用户使用该数据库。右击所选中 的数据库,

11、在弹出菜单中选择“重命名”命令。(6) 删除数据库当数据库及其中的数据失去利用价值以后,可以删除数据库以释放被 其占用的磁盘空间。右击所选中的数据库,在弹出菜单中选择“删除 ”命令,即可删除数据库。由于删除一个数据库会删除所有的数据和 该数据库所使用的所有磁盘文件,所以删除数据库之前应格外小心。 删除之后如果再想恢复,必须要从之前做好的备份中进行数据库还原。系统数据库中的master、model和tempdb都不能被删除,msdb虽然可以被删除,但删除msdb后很多服务(如SQL Server)将无法使用,因为这些服务在运行时会用到msdb。服务战略性信息产业教育服务提供商联世界 育未来创新物

12、联教育n 3数据表的创建与维护n 在SSMS中为用户提供了方便的图形化工具来创建和管理表。这里以创建小区物业监控系统数据库MonitorDB中登陆信息表Table_LoginRecord为例,介绍使用SSMS创建数据表的具体步骤。n (1)启动SSMS集成环境,在“对象资源管理器”窗口中,依次展开“数据库”的MonitorDB节点。n (2)在数据库MonitorDB的展开列表中选择“表”,鼠标右击,从快捷菜单中选择“新建表”命令,出现创建表对话框,如图4-9所示。在此输入表的列名、选择数据类型、数据长度与精度,规定该列数据是否允许为空,设置表格中的各种约束条件。战略性信息产业教育服务提供商联

13、世界 育未来创新物联教育n 注意:列名必须遵循标识符规则,在一个表中必须唯一。另外除了字符数据类型和二进制数据类型以外,其他数据类型都是固定的数据长度,不能进行长度修改。n (3)进行各类约束(如主键、外键等)的设置,关于约束的概念和具体创建方法见后面介绍。n (4)单击“保存”按纽,输入表,则该表就被保存到数据库中了。击“确定”按纽战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-9 使用SSMS创建登陆信息表Table_LoginRecord战略性信息产业教育服务提供商联世界 育未来创新物联教育对创建好的数据表,可以在SSMS集成环境下查看或修改数据表的基本信息,并对其进行有效的

14、管理和维护。右击所选中的表,在弹出菜 单中选择“重命名”命令可以进行表的重命名,选择“删除”命令可 以进行表的删除。4数据记录的输入与删除表是记录的容器,表结构创建完成后,即可向表中添加记录。在实际软件项目中,一般需要利用C#、JAVA等高级语言开发数据录入人机交互界面,然后调用Insert语句实现记录的添加。在 SSMS中也可以直接向表中输入记录。右击要输入记录的表, 在弹出菜单中选择“编辑前200行”命令,弹出“数据录入”窗口,如图4-10所示。在空白行输入相关的数据。同 时也可以在此窗口中修改之前已经输入的数据。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-10 “数据录入

15、”窗口战略性信息产业教育服务提供商联世界 育未来创新物联教育n 直接在表中删除记录的方法是:在图4-10中,选定要删除的记录,右击在弹出菜单中选择“删除”命令。n 注意:向表中添加、修改、删除记录要受到各种完整性约束的限制。n 5约束的创建与维护n 约束是实现数据完整性、一致性和有效性的重要方法,下面介绍在SSMS中使用图形化工具来创建和维护约束。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (1)主键约束n 在“对象资源管理器”中,打开要设置主键的表,进入“ 表设计器”窗口。选定要设置主键的列或列的组合,右击弹出“表结构维护”菜单,如图4-9所示,选择“设置主键”命令,完成主键的

16、设置。主键构成字段前出现图标。n 主键的移除与主键的设置方法类似。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)外键约束n 外键约束主要用于维护两个表之间的一致性,即外键的值必须引用另一表主键的值。例如用户登陆信息表中Table_LoginRecord的用户名UserName应与用户表Users中的唯一性约束用户名UserName相 关,该列是Table_LoginRecord的外键。下面介绍在SSMS中外键的创建方法。n 在要创建外键联系的表Table_LoginRecord的表设计器窗口中, 在任意行上右击,在弹出的快捷菜单中选择“关系”命令,弹出如图4-11所示的“外键

17、关系”对话框。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-11 “外键关系”对话框战略性信息产业教育服务提供商联世界 育未来创新物联教育n 在“外键关系”对话框中单击“添加”按钮增加新的外键关系。如果要修改已经建立的约束,可以从“选定的关系”列表中选择对应的关系名。如果是删除约束,则单击“删除”按纽。n 单击“表和列规范”右边的 按钮,打开“表和列”对话框,输入关系名,选择主键表、主键、外键表与外键。如图4-12中,在主键表中选择Users,选择主键为UserName;在外键表中选择Table_LoginRecord,选择外键为UserName。战略性信息产业教育服务提供商联世

18、界 育未来创新物联教育图4-12 “表和列”对话框战略性信息产业教育服务提供商联世界 育未来创新物联教育n 单击【确定】按钮返回“外键关系”对话框。在图4- 10中可以选择“在创建或重新启动时检查现有数据”。n 这里需要注意的是在创建外键约束时,一定要保证父表中被引用的列必须唯一(即必须为主键或唯一性约束的字段),否则不能创建外键;父表中的被引用列与子表中的外键列数据类型和长度必须相同,否则不能创建。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 3检查约束n 检查约束通过使用逻辑表达式来限制列上可以接受的值, 要进入数据表的数据,必须符合条件才可以通过。在数据库表的设计界面上,在任

19、意行上右击,在弹出的快捷菜单中选择“Check约束”命令,打开“check约束”对话框。单击【添加】按钮,新建检查约束。单击“表达式”右边的 按钮,打开“check约束表达式”对话框,在该对话框中设置约束条件。依次单击【确定】按钮,保存设置,完成检查约束的设置。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 4惟一性约束n 惟一性约束是用于保证某字段数据的惟一性。与主键约束一样,设置了惟一性约束的字段也可被外键引用。但惟一性约束与主键约束也有区别:惟一性约束允许该列存在空值,而主键不允许空值;在一个表上可定义多个惟一性约束,但只能定义一个主键约束。在SSMS中唯一性约束的创建方法如下

20、:n 在数据库表的设计界面上,在任意行上右击,在弹出的快捷菜单中选择“索引/键”命令,打开“索引/键”对话框,如图4-13所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-13 “索引/键”对话框战略性信息产业教育服务提供商联世界 育未来创新物联教育n 选择类型为“唯一键”,选择要设置为唯一性的列为UserName。n 设置完成后,分别关闭已打开的对话框,保存设置。n 5默认约束n 默认约束是指在记录建立后用户没有输入字段值时,该字段值是由系 统自动提供。在数据库表的设计界面上,选中要创建默认约束的列, 在下面列属性中设置“默认值或绑定”即可。n 上述操作过程除了使用SSMS进

21、行图形化操作外,还可以通过编写Create DataBase、Create Table等SQL语句实现,这里不再赘述。战略性信息产业教育服务提供商联世界 育未来创新物联教育2.3 数据查询语句n 数据查询语句具有极强的查询与统计汇总功能,语句一般格式如下。SelectAll | Distinct ,nFrom ,n WhereGroupBy Having OrderByAsc | Desc 其中Select,n 为投影运算,“目标表达式”指定了结果集中要包含的数据列,子句的目标表达式有4种表达方式,如图4-13(a)所示;战略性信息产业教育服务提供商联世界 育未来创新物联教育From指定了查询

22、的数据源。当数据源为单个表时该查询为简单查询,当数据源超过1个表时该查询为连接查询,连接方式有7种表达方式,如图4-13(b)所示。Where为选择运算,指定了数据源中的行需要满足的筛选条件,有6种表达方式,如图4-14(c)所示,在Where 子句中还允许进行嵌套子查询与相关子查询;GroupBy为分组语句,通常需要在分组的情 况下进行统计运算;Having为附加选择运算,用来向使用GroupBy子句的查询添加数据筛选条件;OrderByAsc | Desc 为排序运算,指定了结果集中行的排列顺序。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-13 “索引/键”对话框战略性信息

23、产业教育服务提供商联世界 育未来创新物联教育2.4 数据更新语句n 1Insert 语句语句格式1:Insert Into 字段名表 Values (字语句格式2:Insert Into 字段名表 Select 子句段值)n 2Update语句Update Set = Where n 3Delete与Truncate语句Delete From Where Truncate Table战略性信息产业教育服务提供商联世界 育未来创新物联教育目录1. 典型案例2. SQL Server数据库基础3.ADO.NET操作数据库4. 数据源与数据绑定5. 实体数据模型操作数据库6.Linq7. 小结8.

24、习题战略性信息产业教育服务提供商联世界 育未来创新物联教育3.1 ADO.NET概述1ADO.NET访问数据源的方式ASP.NET通过ADO.NET来访问数据库,ADO.NET完全兼容于OLE DB兼容数据库,因此,无论采取的是Access、SQL Server、Informix、Oracle、dBase或其他数据库,只要该数据库有OLE DB 驱动程序,ADO.NET就能够访问。由图4-15可知,ADO.NET通过以下两个.NET数据提供程序来访问数据源。(1)SQL Server.NET数据提供程序:用来访问SQL Server 7.0或更高版本的数据库,它位于System.Data.Sq

25、lClient命名空间,由于使用特殊的协议(Tabular Data Stream)与SQL Server沟通,此协议无须以来OLE DB,且直接由CLR管理,因此,使用SQL Server.NET数据提供程序访问SQL Server数据库比使用OLE DB.NET数据提供程序的效率更佳。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)OLE DB.NET数据提供程序:用来访问Access、SQL Server 6.5或更旧版本、Visual FoxPro、Informix、Oracle、dBase或其他数据库,只要该数据库有对应的OLE DB驱动程序,ADO.NET 就能够访

26、问。战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育n 2ADO.NET的体系结构n ADO.NET结构如图4-16所示,包括两大核心组件:.NET数据提供程序和DataSet数据集。.NET数据提供程序用于连接到数据库、执行命令及检索结果,包含4个核心对象,即Connection对象、Command对象、DataReader对象和DataAdapter对象。Connection对象用于与数据源建立连接,Command对象用于对数据源执行命令,DataReader对象用于从数据源中检索只读、只向前的数据流,DataAdapter对象用

27、于将数据源的数据填充至DataSet数据集并更新数据集。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-16 ADO.NET访问数据源的方式战略性信息产业教育服务提供商联世界 育未来创新物联教育n 3ADO.NET的命名空间在ASP.NET文件中通过ADO.NET访问数据需要引入的几个命名空间如表4-1:表4-1ADO.NET命名空间战略性信息产业教育服务提供商联世界 育未来创新物联教育n 在System.Data中提供了许多ADO.NET构架的基类,管理和存取不同数据源的数据,DataSet对象是ADO.NET的核心。n System.Data.OleDB和 System.Dat

28、a.SqlClient是ADO.NET中负责建立数据连接的类,又称为Managed Provider,各自含有的对象如下:n System.Data.OleDB包括OleDBConnection、OleDBCommand、OleDBDataAdapter、OleDBDataReader。n System.Data.SqlClient包括SqlConnection、SqlCommand、SqlDataAdapter、SqlDataReader。战略性信息产业教育服务提供商联世界 育未来创新物联教育3.2 ADO.NET数据访问流程n ADO.NET访问数据库的方式有两种,即有连接的访问和无连接的

29、访问,有连接的访问用DataReader对象返回操作结果,速度快,但是一种独占式的访问,效率并不高;无连接的访问用DataSet对象返回 结果,DataSet对象可以看做是一个内存数据库,访问的结果存放到DataSet对象中后可以在DataSet内存数据库中操作表,效率更高。n 1有连接数据访问流程有连接数据访问流程为:首先通过Connection对象连接外存数 据库,然后通过Command命令对象执行操作命令(如数据的增删查改)。如果需要查询信息,通过DataReader对象将数据一一读出,再绑定到页面控件上进行显示。所有操作结束后必须关闭Connection对象 的连接,断开与外存数据库的

30、连接。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 2无连接数据访问流程无连接数据访问流程为:首先使用Connection对象建立与外存数据库的连接,然后通过设置DataAdapter适配器对象的属性,用指定连接执行SQL语句从数据库中提取需要的数据,创建DataSet内存数据库对象,将DataAdapter对象执行SQL语句返回的结果使用Fill方法填充至DataSet对象。DataSet从数据源中获取数据以后就可以断开与数据源之间的连接。最后为数据绑定控件设置数据源并绑定,以便在其中显示DataSet内存数据库中的数据。同时当完成了各项操作后,DataAdapter对象还可以通

31、过Update方法实现以内存数据库DataSet对象中的数据来更新外存数据库。由于DataSet中的所有数据都是加载在内存上执行的,可以提高数据访问速度,提高硬盘数据的安全性,极大地改善了程序运行的速度和稳定性。战略性信息产业教育服务提供商联世界 育未来创新物联教育3.3 常用ADO.NET对象的使用n 1Connection对象操作数据库的第一步是建立与数据库的连接。Connection对象用来打开和关闭数据库连接。Access及SQL Server 7.0以上版本数据库创建数据库连接的语法如下:OleDbConnection con= new OleDbConnection(connect

32、ionString);/Access数据库SqlConnection con=new SqlConnection(connectionString);/SQL Server数据库参数connectionString用来指定数据连接方式,也可以在创建Connection对象之后再指定ConnectionString属性。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (1)连接OLE DB兼容数据库常用的参数n 例:下面的三个字符串分别用来打开Oracle、Access及SQL Server6.5或以前版本的数据库,其中Data Source参数为数据源的实际路径:“Provider=

33、MSDAORA;Data Source=ORACLE8i7;User ID=Jerry;Password=f658”“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:data.mdb”“Provider=SQLOLEDB;Data Source=WWW;Integrated Security=SSPI”战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)连接SQL Server 7.0或更新版本数据库的常用参数,见表4-2。表4-2连接SQL Server 7.0或更新版本数据库的常用参数战略性信息产业教育服务提供商联世界 育未来创新物联

34、教育Data Source=localhost; Initial catalog=Alumni_sys; User Id=Sa;Pwd=Sa“n (3)Connection对象的方法Open():打开数据库。Close():关闭数据库连接。不再使用数据源时,使用该方法关闭与数据源的连接。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 2Command对象成功使用Connection对象创建数据连接之后,接下来就可使用ADO.NET对象提供的Command对象对数据源执行各种SQL命令并返回结果。创建Command对象的语法如下:OleDbCommand cmd =new OleDbC

35、ommand(cmdText,connectioin);/Access数据库SqlCommandcmd =new SqlCommand(cmdText,connection);/SQL Server数据库参数cmdText为欲执行的SQL命令,参数connection为欲使用的数据连接战略性信息产业教育服务提供商联世界 育未来创新物联教育n (1)Command对象常用属性CommandText属性:获取或设置欲对数据源执行的SQL命令、存储过程名称或数据表名称。CommandType属性:获取或设置命令类别,可取的值为StoredProcedure(存储过程)、TableDirect(数据表

36、名)、Text(SQL语句)。Connection属性:获取或设置Command对象所要 使用的数据连对象。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)Command对象常用方法ExecuteNonQuery方法:执行CommandText属性指定的内容,并返回被影响的列数。只有Update、Insert及Delete返回被影响的列数,该方法用于对数据库的更新操作。ExecuteReader方法:执行CommandText属性指定的内容, 并创建DataReader对象,一般执行的是Select语句。ExecuteScalar方法:执行CommandText属性指定的内容,

37、 并返回执行结果第一列第一栏的值,此方法只能用来执行Select语句。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 3DataReader对象对于只需顺序显示数据表中记录的应用而言, DataReader对象是比较理想的选择。可以通过Command 对象的ExecuteReader()方法创建DataReader对象。DataReader对象一旦建立,即可通过对象的属性、方法访问数据源中的数据。建立DataReader对象的语法如下:战略性信息产业教育服务提供商联世界 育未来创新物联教育OleDbDataReader dr= cmd.ExecuteReader();/Access数

38、据库SqlDataReader dr = cmd.ExecuteReader();/SQL Server数据库(1)DataReader对象的属性FieldCount:获取字段数目。IsClosed:获取DataReader对象的状态,True表示关闭,False表示打开。RecordsAffected:获取执行Insert、Delete或Update等SQL命令后有多少行受到影响,若没有受到影响,便返回0。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)DataReader对象的方法Close():关闭DataReader对象。GetFieldType(ordinal):获取

39、第ordinal1列的数据类型。GetName(ordinal):获取第ordinal1列字段的名称。GetOrdinal(name):获取字段名称为name的字段序号。GetValues(values):获取所有字段的内容,并将字段内容存放在values数组,IsDBNull(ordinal):判断第ordinal1列是否为Null,返回False表示不是Null,返回True表示是Null。Reader():读取下一条数据并返回布尔值,返回True表示还有下一条数据,返回False表示没有下一条数据。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 4DataAdapter对象成功

40、地使用Connection对象创建数据连接后,可以使用DataAdapter对象对数据源执行各种SQL命令并返回结果,可以执行的命令包括:“选取”(SelectCommand)、“插入”(InsertCommand)、“更新”(UpdateCommand)、“删除”(DeleteCommand)。(1)创建DataAdapter对象语法结构(以SQL Server数据库为例,有以下四种方法):战略性信息产业教育服务提供商联世界 育未来创新物联教育n SqlDataAdapter dp= new SqlDataAdapter() ;创建之后配置属性/n SqlDataAdapter dp= ne

41、w SqlDataAdapter(命令对象名)/先创建Command对象n SqlDataAdapter dp= new SqlDataAdapter(SQL语句,连接对象名) /先创建Connection对象n SqlDataAdapter dp= new SqlDataAdapter(SQL语句,连接字符串)战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)DataAdapter对象的属性DeleteCommand = “”:获取或设置用来从数据源删除数据行的SQL命令,属性值必须为Command对象,此属性只有在调用Update()方法,DataAdapter对象得知须从数

42、据源删除数据行时使用,其主要用途是告诉DataAdapter对象如何从数据源删除数据行。InsertCommand = “”:获取或设置将数据行插入数据源的SQL命令,属性值必须是Command对象,使用原则同DeleteCommand。战略性信息产业教育服务提供商联世界 育未来创新物联教育SelectCommand =“”:获取或设置用来从数据源选取数据行的SQL命令,属性值为Command对象,使用原则同DeleteCommand。UpdateCommand =“”:获取或设置用来更新数据源数据行的SQL命令,属性值为Command对象,使用原则 同DeleteCommand。其他属性:C

43、ontinueUpdateOnError 、AcceptChangesDuringFill 、MissingMappingAction、MissingSchemaAction、TableMappings。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (3)DataAdapter的方法Fill(dataSet对象名,内存表的别名)将SelectCommand属性指定的SQL命令执行结果所选取的数据行置入DataSet对象,其返回值为置DataSet对象的数据行数。Update(dataSet对象名, 内存表的别名 )调用InsertCommand、UpdateCommand或Dele

44、teCommand属性 指定的SQL命令将DataSet对象更新到数据源。战略性信息产业教育服务提供商联世界 育未来创新物联教育n 5DataSet对象n DataSet对象是ADO.NET体系结构的中心,位于.NETFramework中System.Data.DataSet中,实际上是从数据库中检索记录的缓存,可以将DataSet当作一个小型内存数据库,它包含表、列、约束、行和关系。这些DataSet对象称为DataTable、DataColumn、DataRow、Constraint和Reliation。DataSet允许使用无连接的应用程序。在用户要求访问数据源时,无须经过冗长的连接操作

45、,而且数据从数据源读入DataSet对象( 内存)之后,便关闭数据连接,解除数据库的锁定,其他用户便可以使用该数据库,用户之间无须争夺数据源。战略性信息产业教育服务提供商联世界 育未来创新物联教育n DataSet对象必须配合DataAdapter对象使用,DataAdapter对象结构在Command对象之上,用来执行SQL命令,然后将结果置入DataSet对象;此外DataAdapter对象也可将DataSet对象更改过的数据写回数据源。n 每个用户都拥有专属的DataSet对象,所有操作数据库的动作(查询、删除、插入及更新等)都在DataSet对象中进行,与数据源无关。使用DataSet

46、对象处理数据库的概念很简单,其过程如图4-17所示。战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-17 DataSet对象处理数据过程战略性信息产业教育服务提供商联世界 育未来创新物联教育n 创建DataSet对象的方式很简单,无论那种数据源(OLEDB数据库或SQL Server数据库),创建方式都一样,语法如下:DataSetds= new DataSet();da.Fill(ds,内存表的别名);/da为DataAdapter对象名成功创建DataSet对象之后,就可以访问其所提供的属性及方法。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (1)DataSet对

47、象的属性CaseSensitive = True,False:获取或设置在DataTable对象内比较字符串时是否分辨字母的大小写,默认为False。DataSetName = “”:当前DataSet的名称。如果不指定,则该属性值设置为NewDataSet。如果将DataSet内容写入XML文件, DataSetName是XML文件的根节点名称。Tables:获取DataTable集合,DataSet对象的所有DataTable对象( 数据表)均存放在DataTableCollection中。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (2)DataSet对象的方法Accept

48、Changes():将所有变动过的数据更新到DataSet对象。Clear():清除DataSet对象的数据,此方删除所有DataTable对象。Clone():复制DataSet对象的结构,包含所有DataTable对象的架构描述、条件约束,返回值与此DataSet对象具有相同结构的DataSet对象。Copy():复制DataSet对象的结构及数据,返回值为与此DataSet对象具有相同结构及数据的DataSet对象。GetChanges(Added,Deleted,Detached,Modified, Unchanged):此方法的参数可以省略不写,表示返回自上次调用AcceptChan

49、ges()方法后,DataSet对象变动过的数据。GetXml:返回数据存放在DataSet对象内的XML描述,返回值为字符创。HasChanges(Added,Deleted,Detached,Modified,Unchanged):判断DataSet对象的数战据略是性信否息产变业教动育服过务。提供商联世界 育未来创新物联教育n 工程案例n 【例4-1】在WPF开发小区物业监控系统中,演示数据的显示,其运行结果如图4-18所示。图4-18 数据显示界面战略性信息产业教育服务提供商联世界 育未来创新物联教育n 操作步骤n (1)新建一个“Demo_4”WPF应用程序项目。n (2)在“Main

50、Window.xaml”文件中添加如下代码战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育n (3)在app.config文件中添加连接字符串常量。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (4)添加类文件DataBaseHelper.cs,在其中编写连接数据库、执行SQL增删改语句,执行SQL查询语句的函数。主要代码如下:战略性信息产业教育服务提供商联世界

51、育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育战略性信息产业教育服务提供商联世界 育未来创新物联教育n (5)在“MainWindow.xaml.cs”中主要功能代码如 下。战略性信息产业教育服务提供商联世界 育未来创新物联教育n (6)启动项目进行测试,就可以看到如图所示界面。n 【例4-2】在WPF开发小区物业监控系统中,演示数据的查询 ,其运行结果如图4-19、图4-20 所示战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-19 登录信息查询界面战略性信息产业教育服务提供商联世界 育未来创新物联教育图4-20 登录信息查询运行效果战略性信息产业教育服务提供商联世界 育未来创新物联教育n 操作步骤(1) 新建一个“Demo_4_2”WPF应用程序项目。(2) 在“MainWindow.xaml”中添加如下代码。战略性信息产业教育服务提供商联世界

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论