ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08

上传人:E**** 文档编号:89385813 上传时间:2019-05-24 格式:PPT 页数:31 大小:744KB
返回 下载 相关 举报
ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08_第1页
第1页 / 共31页
ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08_第2页
第2页 / 共31页
ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08_第3页
第3页 / 共31页
ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08_第4页
第4页 / 共31页
ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08》由会员分享,可在线阅读,更多相关《ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 ppt 作者 978-7-302-22793-9 chap08(31页珍藏版)》请在金锄头文库上搜索。

1、第8章 LINQ,8.1 LINQ介绍,LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性,已成为编程语言的一个组成部分。 LINQ技术采用类似于SQL语句的句法,它的句法结构是以from开始,结束于select或group子句。开头的from子句可以跟随0个或者更多个from或where子句。每个from子句都是一个产生器,它引入了一个迭代变量在序列上搜索;每个where子句是一个过滤器,它从结果中排除一些项。最后的select或group子句指定了依据迭代变量得出的结果的外形。,8.1 LINQ介绍,LINQ是一系列技术,包括LINQ

2、、DLINQ、XLINQ等。下图描述了LINQ技术的体系结构。,8.2 C#中的LINQ入门,“查询”是一组指令,这些指令描述如何从一个或多个给定数据源检索数据,以及返回的数据应该使用的格式和组织形式。 LINQ的查询操作通常由以下三个不同的操作组成: (1) 获得数据源。 (2) 创建查询。 (3) 执行查询。,8.2.1 LINQ查询,8.2 C#中的LINQ入门,执行LINQ查询的过程如图所示。,8.2.1 LINQ查询,8.2 C#中的LINQ入门,LINQ查询基于泛型类型,LINQ查询变量的类型为IEnumerable) 或派生类型,如IQueryable)。当看到类型为IEnume

3、rable的查询变量时,这意味着在执行该查询时,该查询将生成包含零个或多个Customer对象的序列。 为了避免使用泛型语法,我们可以使用匿名类型来声明查询,即使用var关键字来声明查询。var关键字指示编译器通过查看在from子句中指定的数据来推断查询变量的类型。,8.2.2 LINQ和泛型,8.2 C#中的LINQ入门,查询表达式使用C# 3.0中引入的声明性查询语法编写。通过使用查询语法,开发人员可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作,也可以查询和转换SQL数据库、ADO.NET数据集、XML文档和流以及.NET集合中的数据。 查询表达式必须以from子句开头,并且必须

4、以select或group子句结尾。在第一个from子句和最后一个select或group子句之间,查询表达式可以包含一个或多个下列可选子句:where、orderby、join、let,甚至可以包括附加的from子句。还可以使用into关键字使join或group子句的结果能够充当同一查询表达式中附加查询子句的源。,8.2.3 查询表达式,8.2 C#中的LINQ入门,应用实例:从国家集合中查找面积大于500万平方公里的国家。,8.2.3 查询表达式,核心代码: IEnumerable countryQuery = from c in countries where c.area 500 o

5、rderby c.area descending select c.name; ,8.2 C#中的LINQ入门,C#3.0的一些新特性是实现LINQ实现的基础,这些新特性包括: 查询表达式 隐式类型 对象和集合初始化 匿名类型 扩展方法 Lambda表达式 自动实现的属性,8.2.4 LINQ实现的基础,8.3 LINQ to ADO.NET,在LINQ TO SQL中,关系数据库的数据模型映射为编程语言表示的对象模型。当应用程序运行时,LINQ TO SQL会将对象模型中的语言集成查询转换为SQL,然后将它们发送到数据库进行执行。当数据库返回结果时,LINQ TO SQL会将它们再次转换为编

6、程语言处理的对象。 LINQ TO SQL的使用主要可以分为两大步骤: (1)创建对象模型 (2)使用对象模型,8.3.1 LINQ TO SQL,对象模型是关系数据库在编程语言中表示的数据模型,对对象模型的操作就是对关系数据库的操作。 创建对象模型,就是基于关系数据库来创建这些LINQ TO SQL对象模型中最基本的元素。创建对象模型方法有三种: (1) 使用对象关系设计器,对象关系设计器提供了用于从现有数据库创建对象模型的丰富用户界面,它包含在VS2008中之中,最适合小型或中型数据库。 (2) 使用SQLMetal代码生成工具,这个工具适合大型数据库的开发,因此对于普通读者来说,这种方法

7、就不常用了。 (3) 直接编写创建对象的代码。,8.3 LINQ to ADO.NET,8.3.2 对象模型和对象模型的创建,使用对象关系设计器创建对象模型的界面如图所示。,8.3 LINQ to ADO.NET,8.3.2 对象模型和对象模型的创建,8.3 LINQ to ADO.NET,LINQ TO SQL查询数据库的过程如图所示。,8.3.3 查询数据库,LINQ TO SQL的查询过程,8.3 LINQ to ADO.NET,应用实例:使用LINQ查询数据库,并把数据在网页中显示,8.3.3 查询数据库,核心代码: ReviewsDataContext data = new Revi

8、ewsDataContext (); var WorksQuery = from w in data.works select w; GridView1.DataSource = WorksQuery; GridView1.DataBind(); ,1插入操作 向数据库插入行的操作步骤如下: (1) 创建一个包含要提交到列数据的新对象。 (2) 将这个新对象添加到与数据库中目标表关联的LINQ to SQL Table集合。 (3) 将更改提交到数据库。,8.3.4更改数据库,8.3 LINQ to ADO.NET,应用实例:利用LINQ to SQL向该实体类的对象插入一条数据。,8.3 L

9、INQ to ADO.NET,核心代码: ReviewsDataContext data = new ReviewsDataContext (); works pro = new works(); pro.编号 = 100006; pro.产地 = “潼关吏“; pro.作者 = “杜甫”; pro.类型 = “散文“; data.works.InsertOnSubmit(pro); data.SubmitChanges(); var WorksQuery = from w in data.works select w; GridView1.DataSource = WorksQuery; G

10、ridView1.DataBind(); ,2更新操作 更新数据库中的行的操作步骤如下: (1) 查询数据库中要更新的行。 (2) 对得到的LINQ TO SQL对象中成员值进行所需要的更改。 (3) 将更改提交到数据库。,8.3.4更改数据库,8.3 LINQ to ADO.NET,应用实例:利用LINQ to SQL向该实体类的对象插入一条数据。,8.3 LINQ to ADO.NET,核心代码: ReviewsDataContext data = new ReviewsDataContext(); var query = from pro in data.works where pro.

11、编号 = 100006 select pro; foreach (works pro in query) pro.类型 = “诗歌”; data.SubmitChanges(); ,3删除操作 可以通过将对应的LINQ to SQL对象从其与表相关的集合中删除来删除数据库中的行。不过,LINQ to SQL不支持且无法识别级联删除操作。如果要在对行有约束的表中删除行,则必须完成以任务之一: 在数据库的外键约束中设置ON DELETE CASCADE规则。 使用自己的代码首先删除阻止删除父对象的子对象。 删除数据库中的行的操作步骤如下: (1) 查询数据库中要删除的行。 (2) 调用Delete

12、OnSubmit方法。 (3) 将更改提交到数据库。,8.3.4更改数据库,8.3 LINQ to ADO.NET,应用实例:利用LINQ to SQL向该实体类的对象插入一条数据。,8.3 LINQ to ADO.NET,核心代码: ReviewsDataContext data = new ReviewsDataContext(); var deleteWorks = from pro in data.works where pro.编号 = 100006 select pro; foreach (var pro in deleteWorks) data.works.DeleteOnSub

13、mit(pro); data.SubmitChanges(); var WorksQuery = from w in data.works select w; ,使用LINQ to DataSet可以更快更容易地查询在DataSet对象中缓存的数据。通过使开发人员能够使用编程语言本身而不是通过使用单独的查询语言来编写查询,LINQ to DataSet可以简化查询。 LINQ to DataSet也可用于查询从一个或多个数据源合并的数据。 这可以使许多需要灵活表示和处理数据的方案能够实现。 LINQ to DataSet功能主要通过DataRowExtensions和DataTableExte

14、nsions类中的扩展方法公开。,8.3 LINQ to ADO.NET,8.3.6 LINQ to DataSet,应用实例:使用LINQ查询Literature数据库works表中历史著作,并使用GridView控件显示这些记录。,8.3 LINQ to ADO.NET,核心代码: DataSet myDs = new DataSet(); Adapter.Fill(myDs); DataTable works = myDs.Tables0; var query = from w in works.AsEnumerable() select new 产品名称 = w.Field(“名称“)

15、, 产地 = w.Field(“作者“) ; GridView1.DataSource = query; ,8.4 LinqDataSource控件,LinqDataSource控件为用户提供了一种将数据控件连接到多种数据源的方法,其中包括数据库数据、数据源类和内存中集合。通过使用LinqDataSource控件,用户可以针对所有这些类型的数据源指定类似于数据库检索的任务(选择、筛选、分组和排序)。可以指定针对数据库表的修改任务(更新、删除和插入)。 若要显示LinqDataSource控件中的数据,可将数据绑定控件绑定到LinqDataSource控件。例如,将DetailsView控件、G

16、ridView控件或ListView控件绑定到LinqDataSource控件。同时,将数据绑定控件的DataSourceID属性设置为LinqDataSource控件的ID。,8.4 LinqDataSource控件,应用实例:使用LinqDataSource和ReviewDataContext显示数据,并对数据进行编辑操作。,关键步骤: 1)从“工具箱”的“数据”选项卡中,将LinqDataSource控件拖动到网页的 form 元素内,ID属性保留为LinqDataSource1 2)将ContextTypeName属性设置为ReviewsDataContext,将TableName属性设置为works,将AutoPage设置为true,将EnableUpdate、EnableInsert和EnableDelete属性设置为true 3)在“工具箱”的“数据”选项卡中,双击DetailsView控件以将其添加到页面中。ID属性保留为DetailsView1 4)将DataSourceID属性设

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号