




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教育部普通高等教育十二五国家级规划(guhu)教材C#程序设计及应用教程第3版(包括简化版:C#程序设计教程第3版)第12章 数据库与实体数据模型共五十二页2Ch12 数据库与实体(sht)数据模型12.1 创建(chungjin)数据库和表12.2 利用实体框架创建实体数据模型12.3 使用LINQ to Entities访问实体对象12.4 DataGrid控件共五十二页312.1 创建(chungjin)数据库和表12.1.1 ADO.NET数据(shj)访问技术12.1.2 SQL Server 2012简介12.1.3 创建LocalDB数据库12.1.4 连接其他已有的数据库共五十
2、二页12.1.1 ADO.NET数据访问(fngwn)技术1利用DataSet访问数据库用DataSet来实现,这是ADO.NET刚推出时提供的技术,用于在断开连接方式下对数据进行处理,在VS2005、VS2008、VS2010和VS2012中都可以使用。将驻留在本机内存中的DataSet作为中间层,即应用程序和DataSet进行交互(jioh),DataSet再和数据库进行交互。2利用LINQ to DataSet访问数据库这种方式和第一种方式类似,区别是应用程序可以使用LINQ语法访问DataSet,用法比第一种方式更灵活,也更简单。在VS2008、VS2010和VS2012中都可以使用。
3、4共五十二页12.1.1 ADO.NET数据访问(fngwn)技术3利用LINQ to SQL访问数据库用LINQ to SQL来实现,在VS2008、VS2010和VS2012中都可以使用。这种方式直接和SQL Server数据库进行交互,执行效率高,速度快,但该方式不支持其他类型的数据库。在LINQ to SQL中,先利用O/R设计器构建模型(mxng),再利用该模型(mxng)传递SQL语句,执行SQL命令,也可以用LINQ语法直接访问SQL Server。使用这种技术时,一般用它设计自定义的中间层对象模型(中间件),然后将其做成.dll文件供其他应用程序调用。5共五十二页12.1.1
4、ADO.NET数据访问(fngwn)技术4利用(lyng)实体框架和LINQ to Entities访问数据库用实体框架和LINQ to Entities来实现,这是微软建议的数据库访问方式,在VS2008、VS2010和VS2012中均可使用。在VS2012中利用该模型可支持多种类型的数据库(包括SQL Server、Oracle、DB2、MySQL等),而且可由数据库供应商直接提供该模型的数据库访问引擎。6共五十二页12.1.2 SQL Server 2012简介(jin ji)1SQL Server技术(jsh)的分类7分 类说 明数据库引擎用于存储、处理和保护数据的核心服务。数据库引擎
5、提供了受控访问和快速事务处理,以满足企业内最苛刻的数据消费应用程序的要求。数据库引擎还提供了大量的支持以保持高可用性Data Quality Services简称DQS,提供知识驱动型数据清理解决方案。DQS可以生成知识库,然后使用此知识库,同时采用计算机辅助方法和交互方法,执行数据更正和消除重复的数据。可以使用基于云的引用数据服务,并可以生成一个数据管理解决方案将DQS与SQL Server Integration Services和Master Data Services相集成Analysis Services是一个针对个人、团队和公司商业智能的分析数据平台和工具集。服务器和客户端设计器通
6、过使用PowerPivot、Excel和SharePoint Server环境,支持传统的OLAP解决方案、新的表格建模解决方案以及自助式分析和协作。Analysis Services 还包括数据挖掘,利用它可以发现隐藏在大量数据中的模式和关系Integration Services是一个生成高性能数据集成解决方案的平台,其中包括对数据仓库提供提取、转换和加载 (ETL) 处理的包Master Data Services用于主数据管理的SQL Server解决方案。基于Master Data Services生成的解决方案可帮助确保报表和分析均基于适当的信息。使用Master Data Ser
7、vices可以为主数据创建中央存储库,并随着主数据随时间变化而维护一个可审核的安全对象记录复制复制是一组技术,用于在数据库间复制和分发数据和数据库对象,然后在数据库间进行同步操作以维持一致性。使用复制时,可以通过局域网和广域网、拨号连接、无线连接和Internet,将数据分发到不同位置以及分发给远程用户或移动用户Reporting Services提供企业级的Web报表功能,可以创建从多个数据源提取数据的表,发布各种格式的表,以及集中管理安全性和订阅共五十二页12.1.2 SQL Server 2012简介(jin ji)2SQL Server 2012数据库引擎的主要特点(1)提供了针对操作
8、系统(co zu x tn)升级的AlwaysOn可用性组的跨群集迁移。(2)针对可编程性的增强功能。(3)针对可扩展性和性能的增强功能。(4)大数据支持。8共五十二页12.1.2 SQL Server 2012简介(jin ji)3SQL Server 2012的版本(bnbn)SQL Server 2012 Enterprise(64位和32位)SQL Server 2012 Business Intelligence(64位和32位)SQL Server 2012 Standard(64位和32位)SQL Server 2012 Web(64位和32位)SQL Server 2012 D
9、eveloper(64位和32 位)SQL Server 2012 Express(64位和32位)SQL Server 2012 Express LocalDB9共五十二页12.1.3 创建(chungjin)LocalDB数据库优点是用法简单,而且将项目和数据库从一台机器复制到另一台机器上时,不需要做任何修改。LocalDB是基于服务的数据库。通过应用程序访问数据库时,VS2012会自动将该.mdf文件附加到LocalDB的默认实例中,当不再使用数据库时,LocalDB便将.mdf文件从默认实例中自动分离出来。虽然本章的例子用LocalDB来讲解,但是实现代码对SQL Server 201
10、2的其他版本同样适用。也可以(ky)在VS2012下使用SQL Server 2008,比如SQL Server 2008 Express版,但是如果将其升级到SQL Server 2012 Express LocalDB,将无法再用SQL Server 2008的Express打开它。10共五十二页12.1.3 创建(chungjin)LocalDB数据库学院(xuyun)编码对照表(XueYuan)11编 码名 称01计算机学院02数学学院03文学院共五十二页12.1.3 创建(chungjin)LocalDB数据库学生(xu sheng)基本情况表(Student)12学号姓名性别出生日
11、期学院编码成绩照片05001001张三玉女1987-10-5018805001002李斯男1986-4-18017604013029王武男1986-5-19039404013030王小琳女1985-11-6033703013031赵六方男1987-12-28035503115002欧阳陈其男1986-1-10292共五十二页12.1.3 创建(chungjin)LocalDB数据库家庭成员情况表(FamilyInfo)13学号成员姓名成员性别与本人关系id05001001张明勤男父亲105001001胡留燕女母亲205001001张三地男兄长305001002李商祥男父亲405001002赵菊
12、音女母亲504013030王琳女母亲6共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示(ynsh)在VS2012开发环境下直接创建数据库的基本用法14共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示在VS2012开发(kif)环境下直接创建数据库的基本用法15共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示在VS2012开发环境下直接创建数据库的基本(jbn)用法16共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示(ynsh)在VS2012开发
13、环境下直接创建数据库的基本用法17共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示在VS2012开发环境下直接(zhji)创建数据库的基本用法18共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示在VS2012开发环境下直接创建(chungjin)数据库的基本用法CREATE TABLE dbo.Student ( XueHao NCHAR (8) NOT NULL, XingMing NVARCHAR (50) NOT NULL, XingBie NCHAR (1) NULL, BirthDate DATE NULL,
14、 ChengJi INT NULL, XueYuanID NCHAR (2) NULL, Photo VARBINARY (MAX) NULL, PRIMARY KEY CLUSTERED (XueHao ASC), CONSTRAINT FK_Student_XueYuan FOREIGN KEY (XueYuanID) REFERENCES dbo.XueYuan (XueYuanID);19共五十二页12.1.3 创建(chungjin)LocalDB数据库【例12-1】演示在VS2012开发环境下直接创建(chungjin)数据库的基本用法20共五十二页12.1.3 创建(chungj
15、in)LocalDB数据库【例12-1】演示在VS2012开发环境下直接创建数据库的基本(jbn)用法21共五十二页12.1.4 连接(linji)其他已有的数据库1Microsoft SQL Server2Microsoft SQL Server Compact 4.03Microsoft SQL Server数据库文件(wnjin)4其他22共五十二页12.2 利用实体(sht)框架创建实体(sht)数据模型12.2.1 实体(sht)框架基本概念12.2.2 实体框架开发模式12.2.3 从数据库创建实体数据模型23共五十二页12.2.1 实体(sht)框架基本概念实体框架具有以下优点。
16、(1)应用程序可以通过概念模型(包括具有继承性、复杂成员和关系的类型)来工作。(2)应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。(3)可以在不更改应用程序代码的情况下更改概念模型与特定于存储的架构之间的映射。(4)开发人员可以使用可映射到各种( zhn)存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。(5)多个概念模型可以映射到同一个存储架构。24共五十二页12.2.2 实体框架(kun ji)开发模式25共五十二页12.2.2 实体(sht)框架开发模式1数据库优先(Database First)数据库优先(Database First)是指先创建数据库,然
17、后再根据数据库生成对应的实体数据模型(.edmx文件)2模型优先(Model First)模型优先(Model First)是指先利用开发工具提供(tgng)的模板创建实体数据模型(.edmx文件),然后再根据实体数据模型生成数据库3代码优先(Code First)代码优先(Code First)是指先编写数据模型代码,然后再根据代码(classes)生成数据库;或者先编写创建数据库的代码,然后再从数据库用代码生成实体数据模型。26共五十二页12.2.3 从数据库创建(chungjin)实体数据模型【例12-2】使用“实体数据模型”模板生成MyDbModel.edmx文件,实现MyDbMode
18、l概念模型和MyDb.mdf数据库(表、视图以及存储(cn ch)过程)之间的映射。27共五十二页12.2.3 从数据库创建(chungjin)实体数据模型【例12-2】【从数据库生成(shn chn)】28共五十二页12.2.3 从数据库创建(chungjin)实体数据模型【例12-2】选择数据(shj)连接29共五十二页12.2.3 从数据库创建(chungjin)实体数据模型【例12-2】选择(xunz)数据对象30共五十二页12.2.3 从数据库创建(chungjin)实体数据模型【例12-2】生成(shn chn)的实体数据模型31共五十二页12.2.3 从数据库创建(chungji
19、n)实体数据模型【例12-2】设置删除时的关联(gunlin)操作32共五十二页12.3 使用LINQ to Entities访问(fngwn)实体对象12.3.1 创建实体框架上下文(DbContext)实例12.3.2 加载相关对象12.3.3 查询数据12.3.4 修改(xigi)数据12.3.5 添加或删除数据33共五十二页12.3.1 创建实体(sht)框架上下文(DbContext)实例1在页面或窗口中只创建一个实体框架上下文实例2使用using语句(yj)实例化实体框架上下文using(var context = new MyDbEntities() /语句块3通过实体框架上下文
20、实例( DbContext类)操作数据Database属性:该属性返回数据库实例,利用它可检查数据库是否存在、以及创建和删除数据库。SaveChanges方法:将更改保存到数据库。34共五十二页12.3.2 加载相关(xinggun)对象1使用LINQ to Entities加载对象这种方式称为延迟加载(Lazy Loading),即先利用LINQ to Entities定义查询语句,然后再通过foreach或者通过数据绑定获取查询结果时才将数据加载到对象中。2使用Load方法(fngf)加载对象这种方式称为显式加载,即通过Load方法将数据加载到实体中。35共五十二页12.3.2 加载相关(
21、xinggun)对象【例12-3】显示成绩(chngj)大于等于60的所有学生信息36共五十二页12.3.3 查询(chxn)数据【例12-4】显示学生信息,并将所在(suzi)学院编码显示为实际的名称37共五十二页12.3.3 查询(chxn)数据【例12-5】统计所有姓王的人数以及这些学生(xu sheng)的合计成绩38共五十二页12.3.3 查询(chxn)数据【例12-6】显示学生(xu sheng)学号、姓名及其家庭成员信息39共五十二页12.3.4 修改(xigi)数据第一种办法是使用实体框架和LINQ to Entities修改数据,即先利用查询得到要修改的实体对象(duxin
22、g),修改后再调用实体对象(duxing)上下文的SaveChanges方法将其保存到数据库中,这是建议的修改办法。第二种办法是通过MyDbEntities对象(从DbContext继承的实体数据模型上下文)的Dababase属性调用ExecuteSqlCommand方法,在该方法中直接传递要执行的SQL语句(修改、添加、删除等操作)。但是由于传递SQL语句只有在执行时才能发现SQL语句是否有语法错误,因此一般不使用这种办法。40共五十二页12.3.4 修改(xigi)数据【例12-7】将张三玉的成绩(chngj)增加10分41共五十二页12.3.5 添加(tin ji)或删除数据添加或删除数
23、据的办法也是直接对实体对象进行(jnxng)操作,操作完成后再调用实体对象上下文的SaveChanges方法将其保存到数据库中。通过MyDbEntities对象的Dababase属性调用ExecuteSqlCommand方法,在该方法中直接传递要执行的SQL语句42共五十二页12.3.5 添加或删除(shnch)数据【例12-8】演示通过代码直接添加(tin ji)、删除数据的基本用法43共五十二页12.4 DataGrid控件12.4.1 绑定各种类型的数据12.4.2 标题和行列(hng li)控制44共五十二页12.4 DataGrid控件将DataGrid控件添加到WPF窗口或页面后,
24、该控件默认具有的功能主要有:支持(zhch)自动排序。用鼠标单击某个列标题,则对应的列就会自动按升序或降序排序(单击升序,再单击降序)。字母顺序区分大小写。支持自动调整大小功能。双击标题之间的列分隔符,该分隔符左边的列会自动按照单元格的内容展开或收缩。单击DataGrid左上角的矩形块可以选择整个表,单击每行左边的矩形块可以选择整行。支持调整列宽功能。在标题区拖动列分隔符可调整显示的列宽。支持编辑功能。双击单元格或者按键可直接编辑单元格内容。在编辑模式下,按键提交更改,或者按键将单元格恢复为更改前的值。如果用户滚动至网格的结尾,将会看到用于添加新记录的行。用户可在该行中直接添加数据,DataG
25、rid控件会自动将其添加到ItemsSource中。45共五十二页12.4.1 绑定各种类型的数据(shj)1DataGrid提供的列类型DataGridTextColumn:String类型,默认用字符串显示(xinsh)该列的内容。DataGridCheckBoxColumn:Boolean类型,默认用CheckBox控件显示该列的内容。DataGridComboBoxColumn:Enum类型,默认用ComboBox控件显示该列的内容。DataGridHyperlinkColumn:Uri类型,默认用Hyperlink控件显示该列的内容。自定义类型:用DataGridTemplateColumn自定义其他数据类型。46共五十二页12.4.1 绑定各种类型的数据(shj)2自定义日期类型对于日期类型的数据,可在自定义模板中让其按照“yyyy-MM-dd”的格式显示,编辑时可利用DatePic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60270:2025 EN-FR High-voltage test techniques – Charge-based measurement of partial discharges
- 2025至2030中国电子废物回收和再利用服务行业产业运行态势及投资规划深度研究报告
- 2025至2030中国环氧大豆油丙烯酸酯低聚物行业产业运行态势及投资规划深度研究报告
- 2025至2030中国猪肉行业市场占有率及投资前景评估规划报告
- 2025至2030中国特性水泥行业发展分析及前景趋势与投资报告
- 智慧城市服务体系下市民满意度提升策略研究
- 在线学习环境下的学生心理支持策略研究
- 企业培训中的智慧学习空间设计与体验优化
- 教育政策与教师权益保障
- 2025年中国乙炔碳黑数据监测研究报告
- 变电站电气安装合同
- 电仪检修面试试题及答案
- 记忆力提升图书出版行业深度调研及发展战略咨询报告
- 沈阳地铁笔试试题及答案
- 双减政策中的课程改革探索心得体会
- 2024-2025学年人教版英语七年级下册Unit 5 Here and now Section A 2a - 2e 教案
- 一维伺服移动工作台设计说明书电子精密机械设计课程设计
- 职工代表选举方案及选票模版(2篇)
- 血透室护理安全管理及防范
- 电商直播平台主播操作手册
- ASTM-D3359-(附著力测试标准)-中文版
评论
0/150
提交评论