ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作

上传人:w****i 文档编号:92480087 上传时间:2019-07-10 格式:PPT 页数:25 大小:109.50KB
返回 下载 相关 举报
ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作_第1页
第1页 / 共25页
ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作_第2页
第2页 / 共25页
ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作_第3页
第3页 / 共25页
ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作_第4页
第4页 / 共25页
ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作》由会员分享,可在线阅读,更多相关《ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼第11章 LINQ to SQL数据库操作(25页珍藏版)》请在金锄头文库上搜索。

1、第11章 LINQ to SQL数据库操作,本章讲述的主要内容 11.1 LINQ的概念 11.2 使用LinqDataSource控件 11.3 使用LINQ to SQL的对象和方法,11.1 LINQ的概念,11.1.1 LINQ的构成 LINQ的组成架构如图11-1所示。,11.1 LINQ的概念,11.1.2 与LINQ相关的几个概念 1. 匿名类型 “匿名类型”也称为“隐式类型”或“推断类型”,如果在程序中需要使用到临时类型,而又不希望去创建相应的类时,可以考虑使用匿名类型。匿名类型使用var关键字进行声明。 例如: var stuinfo = new StuName = “张三“

2、, StuID = “2009000234“, StuAge = 20;,11.1 LINQ的概念,11.1.2 与LINQ相关的几个概念 2. 泛型 要使用泛型需要引入System.Collections.Generic命名空间。 例如,下列语句声明并初始化了一个名为MyGeneric,用于表述一个字符串列表的泛型集合。 List MyGeneric = new Linst; MyGeneric.Add(“zhangsan“); MyGeneric.Add(“2009000234“); MyGeneric.Add(“工程机械0901“); 在Visual Studio 2008中可以将上述代

3、码简化为如下所示: List MyGeneric = new Linst “zhangsan“,“2009000234“,“工程机械0901“;,11.1 LINQ的概念,11.1.2 与LINQ相关的几个概念 3. 扩展方法 使用扩展方法可以为一些现有的类增加某种特定的功能。也就是向一个现有的类中添加新的静态方法(注意必须是静态的)。 创建扩展方法的语法格式如下所示: public static class 静态类名称 public static 返回值类型 方法名称(this 作用类型 形参1 , 形参2) 扩展方法的方法体语句 ,11.1 LINQ的概念,11.1.2 与LINQ相关的几

4、个概念 4. Lambda表达式 Lambda表达式是.NET Framework 3.5的一个新特性,它提供了一种极为简洁的定义方法的方式。它是从.NET Framework 1.0中的“委托”和.NET Framework 2.0中的“匿名方法”过渡而来的。 (1) 委托 委托实际上是一个函数指针,将问题的处理指向一个方法。 (2) 匿名方法 在实际应用中被调用方法的具体名称无关紧要,关键是方法体的返回值。所以在.NET Framework 2.0中引入了“匿名方法”的概念。如下列代码所示,使用匿名方法无需首先创建方法,而是将方法体语句直接书写到委托实例化语句中,并用大括号将其括起来,11

5、.1 LINQ的概念,11.1.2 与LINQ相关的几个概念 4. Lambda表达式 Lambda表达式是.NET Framework 3.5的一个新特性,它提供了一种极为简洁的定义方法的方式。它是从.NET Framework 1.0中的“委托”和.NET Framework 2.0中的“匿名方法”过渡而来的。 (1) 委托 (2) 匿名方法 (3) 过渡到Lambda表达式 Lambda表达式是一个匿名函数,它可以包含表达式和语句块。可用于创建委托或表达式目录树类型。 所有Lambda表达式都使用Lambda运算符“=”,该运算符读为“goes to”。该运算符的左边是输入参数(如果有的

6、话),右边包含表达式或语句块。,11.1 LINQ的概念,11.1.2 与LINQ相关的几个概念 5. 对象关系设计器 对象关系设计器也称为O/R设计器,用来自动生成与数据库表对应的DataConText类。DataConText类是LINQ to SQL框架的主入口点,所有实体对象与关系型数据库中数据的转换就是依靠DataConText类来完成的。 创建DataConText类可以通过手工的方法,也可以使用O/R设计器自动完成。当我们向ASP.NET网站中添加一个“LINQ to SQL类”时,系统将自动打开O/R设计器。从服务器资源管理器窗口中,将数据库表、存储过程等拖动到O/R设计器中,

7、即可自动生成需要的DataConText类或方法。,11.2 使用LinqDataSource控件,11.2.1 创建DataContext类 5. 对象关系设计器 1)添加一个LINQ to SQL类的新项 2)屏幕自动切换到图11-5所示的O/R设计器窗口 3)数据表从服务器资源管理器中拖动到O/R设计器的左窗格,11.2 使用LinqDataSource控件,11.2.2 配置LinqDataSource 使用LinqDataSource配置向导。,11.2 使用LinqDataSource控件,11.2.3 LinqDataSource控件使用示例 本节将以一个实例说明使用LinqDa

8、taSource控件配合FormView控件现实常规数据库操作的方法。 例11-2,11.3 使用LINQ to SQL的对象和方法,11.3.1 返回数据表中的全部记录(select语句) 1. 返回全部记录的全部列 下面的代码说明了在此基础上如何使用LINQ to SQL返回数据表StudentInfo中所有数据的方法。 protected void Button1_Click(object sender, EventArgs e) DataClassesDataContext db = new DataClassesDataContext(); var Stuinfo = from St

9、uTable in db.StudentInfo select StuTable; GridView1.DataSource = Stuinfo; GridView1.DataBind(); ,11.3 使用LINQ to SQL的对象和方法,11.3.1 返回数据表中的全部记录(select语句) 2. 返回全部记录的部分字段 如果希望只返回全部记录的部分字段值(例如,只返回“学号”studentID和“电子邮件”Email),可将select子句改为如下内容。其中,newStuTable.StudentID, StuTable.Email语句创建了一个包含了2个属性的新匿名类型。 sele

10、ct newStuTable.StudentID, StuTable.Email;,11.3 使用LINQ to SQL的对象和方法,11.3.1 返回数据表中的全部记录(select语句) 3. 返回某条记录的某个字段值 下列语句表示了从查询结构中取出某行某列值的方法。语句使用ToList()方法,将sinfo转换成List泛型集合后,取出其中的字段值,即将查询结果中第一条记录的StudentID字段值显示到标签控件中。 protected void Button1_Click(object sender, EventArgs e) DataClassesDataContext db = n

11、ew DataClassesDataContext(); var StuInfo = from StuTable in db.StudentInfo select StuTable; Label1.Text = StuInfo.ToList()0.StudentID;,11.3 使用LINQ to SQL的对象和方法,11.3.1 返回数据表中的全部记录(select语句) 4. 遍历某字段的全部值 下列代码表示了使用foreach循环遍历studentID字段,并将该字段的所有值添加到列表框控件ListBox1中的方法。 protected void Button1_Click(object

12、 sender, EventArgs e) DataClassesDataContext db = new DataClassesDataContext(); foreach (var s in db.StudentInfo) ListBox1.Items.Add(s.StudentID); ,11.3 使用LINQ to SQL的对象和方法,11.3.2 返回数据表中符合条件的部分记录(Where语句) 使用Where语句 下列语句(斜体字部分)通过Where语句设置了条件表达式,筛选出专业为“软件技术”,且“1991-02-01”前出生的所有记录。 protected void LinqW

13、here_Click(object sender, EventArgs e) DataClassesDataContext db = new DataClassesDataContext(); var StuInfo = from StuTable in db.StudentInfo where StuTable.Specialty =“软件技术“ ,11.3 使用LINQ to SQL的对象和方法,11.3.2 返回数据表中符合条件的部分记录(Where语句) 2. 使用Where()方法 通常将上面代码的编写方式称为“语句方式”,将使用Lambda表达式的编写方式称为“方法方式”,实现程序

14、功能的方法方式代码如下所示。代码中斜体字部分使用db.StudentInfo对象的Where()方法,并使用Lambda表达式表示了查询条件。程序的返回结果与上例完全相同。 protected void LinqWhere_Click(object sender, EventArgs e) DataClassesDataContext db = new DataClassesDataContext(); var StuInfo = db.StudentInfo.Where(m = m.Specialty = “软件技术“ ,11.3 使用LINQ to SQL的对象和方法,11.3.2 返回数

15、据表中符合条件的部分记录(Where语句) 3. Single()和SingleOrDefault()方法 如果希望从数据库中返回单独的一条记录,可使用Single()或SingleOrDefault()方法。其中: 1) Single()方法:用于返回符合条件的单独一条记录,在没有找到任何匹配记录时将抛出一个异常。 2) SingleOrDefault()方法:用于返回符合条件的单独一条记录,在没有找到任何匹配的记录时将返回null。,11.3 使用LINQ to SQL的对象和方法,11.3.2 返回数据表中符合条件的部分记录(Where语句) 4. 返回字段值包含特定字符串的记录 可以在

16、LINQ to SQL查询中使用的字符串方法有许多,如:Length、Substring、Contains、StartsWith、EndsWith、IndexOf等等。,11.3 使用LINQ to SQL的对象和方法,11.3.3 返回数据集合的排序(OrderBy方法) 使用OrdreBy()方法或OrderByDescending()方法,可以实现返回记录的升序或降序排列。 protected void LinqOrderBy_Click(object sender, EventArgs e) DataClassesDataContext db = new DataClassesDataContext(); GridView1.DataSource = db.StudentInfo.OrderBy(m = m.DateOfBirth); GridView1.DataBind(); ,11.3 使用LINQ to SQL的对象和方法,11.3.4 连接不同数据表(Join语句) 如果希望将数据

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

当前位置:首页 > 高等教育 > 其它相关文档

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