01 LINQ技术概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• var value = from v in values

where v % 2 == 0

select v;
• Response.Write("查询结果:<br>");
• foreach (var v in value)
•{

Response.Write(v.ToString() + "<br>");
询结果进行排序,排序方式可以为“升序”或 “降序”,且排序的主键可以是一个或多个。 值得注意的是,LINQ查询表达式对查询结果的 默认排序方式为“升序”。
Order by子句
• int[] values = { 3, 8, 6, 4, 1, 5, 7, 0, 9, 2 };
• var value = from v in values
对象的tb_Info表中,再调用SubmitChanges方
法将实体类数据添加到数据库中
使用LINQ操作SQL Server数据库
• 3.修改数据库中的数据
• string str = "Data Source=WIN-
VHC8TL4QK7T;Initial Catalog=db_22;User
ID=sa;pwd=Scy1992";

Leaveword info = new Leaveword();

//要添加的内容

info.Title = tbTitle.Text;

info.Email = tbEmail.Text;

info.Message = tbMessage.Text;
使用LINQ操作SQL Server数据库
如果在“登录名”文本框中输入 “mr’or’1’=’1”,单击“登录”按钮,此时 的SQL语句将会被转换为如下代码: Select count(*) from LoginInfo where Name='mr' or '1'='1' 通过上面的SQL语句可以看出,此SQL语句将会查询 出表中的所有信息,所以程序就会认为登录成功。
• LinqDBDataContext lqDB = new
LinqDBDataContext(str);
• var result = from r in lqDB.Leaveword

where r.id == 1

select r;
• foreach (Leaveword info in result)//设置修改该数

使用LINQ操作SQL Server数据库
•{

info.Title = "没有做不到的事情";
•}
• //将修改的数据保存到数据库中
• lqDB.SubmitChanges();
使用LINQ操作SQL Server数据库
• 4.删除数据库中的数据
• string str = "Data Source=WIN-
• 2.向数据库中添加数据
• string str = "Data Source=WIN-
VHC8TL4QK7T;Initial Catalog=db_22;User
ID=sa;pwd=Scy1992";
• LinqDBDataContext lqDB = new
LinqDBDataContext(str);
LINQ技术概述(1)
• LINQ(Language-Integrated Query,语言集
成查询)是微软公司提供的一项新技术,它能够 将查询直接引入到.Net Framework 4.0所支持的 编程语言(如C#和等)中。
• LINQ查询操作可以通过编程语言自身传达,而不
是以字符串形式嵌入到应用程序代码中。

where v > 5

select v;
• Response.Write("查询结果:<br>");
• foreach (var v in value)
•{

Response.Write(v.ToString() + "<br>");
Order by子句
• 在LINQ查询表达式中,orderby子句可以对查
安全漏洞,它可以将不安全的数据提交给应用 程序,使应用程序在服务器上执行不安全的 SQL命令。使用该攻击可以很轻松地登录应用 程序。
LINQ防止SQL注入式攻击
例如,开发一个管理员登录功能,假如该管理员的 登录名为mrsoft,正确的SQL语句应该为如下代码 Select count(*) from LoginInfo where Name=' mrsoft '

where r.id == 1

select r;

使用LINQ操作SQL Server数据库
• //删除数据,并提交到数据库中 •
lqDB.Leaveword.DeleteAllOnSubmit(r esult);
• lqDB.SubmitChanges();
LINQ防止SQL注入式攻击
• 1.SQL注入式攻击 • SQL注入式攻击是Web应用程序中的一种
LINQ技术概述(1)
• LINQ的组成说明如下。 • LINQ to SQL组件:可以查询基于关系数据库的数
据,并对这些数据进行检索、插入、修改、删除、 排序、聚合和分区等操作。
• LINQ to DataSet组件:可以查询DataSet对象中的
数据,并对这些数据进行检索、过滤和排序等操作 。
LINQ查询常用子句
• 这些子句的具体说明如表所示。
子句 from where select orderby group into
join let
说明 指定查询操作的数据源和范围变量 筛选元素的逻辑条件,一般由逻辑运算符组成 指定查询结果的类型和表现形式 对查询结果进行排序(降序或升序) 对查询结果进行分组 提供一个临时的标识符,该标识符可以引用join、 group和select子句的结果 连接多个查询操作的数据源 引入用于存储查询表达式中子表达式结果的范围变量
•}
where子句
• 在LINQ查询表达式中,where子句指定筛选元
素的逻辑条件,一般由逻辑运算符(如逻辑与和 逻辑或)组成。
• 一个查询表达式可以不包含where子句,也可以
包含一个或多个where子句,每一个where子句 可以包含一个或多个布尔条件表达式。
where子句
• int[] values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
使用LINQ操作SQL Server数据库
• 1、建立LINQ数据源 • 2、执行数据的添加、修改、删除和查询
操作
• 3、灵活运用LinqDataSource控件
使用LINQ操作SQL Server数据库
• 1、建立LINQ数据源 • LinqDB.dbml 文件创建一个名称为
LinqDBDataContext的数据上下文类,为数据库 提供查询或者操作数据库的方法,LINQ数据源创 建完毕。 LinqDBDataContext类中的程序代码 均自动生成。
• var value = from v in values

where v % 2 == 0 && v > 2

select v;
• Response.Write("查询结果:<br>");
• foreach (var v in value)
•{

Response.Write(v.ToString() + "<br>");
VHC8TL4QK7T;Initial Catalog=db_22;User
ID=sa;pwd=Scy1992";
• LinqDBDataContext lqDB = new
LinqDBDataContext(str);
• //查询要删除的记录
• var result = from r in lqDB.Leaveword
使用LINQ操作SQL Server数据库
• var result = from r in lqDB.Leaveword

where r.id > 0

select r;

GridView1.DataSource = result;

GridView1.DataBind();
使用LINQ操作SQL Server数据库
LinqDBDataContext(str);
• //LinqDBDataContext lqDB = new
• LinqDBDataContext(ConfigurationManager.Co
nnectionStrings["db_22ConnectionString"].Con
nectionString.ToString());
LINQ技术概述(1)
• LINQ是.Net Framework中一项突破性的创新,
它在对象领域和数据领域之间架起了一座桥梁。 LINQ主要由3部分组成,分别为LINQ to Objects、LINQ to 和LINQ to XML。 其中,LINQ to 可以分为两部分,分别 为LINQ to SQL 和LINQ to DataSet。
• //执行添加

lqDB.Leaveword.InsertOnSubmit(info);

lqDB.SubmitChanges();
• 首先声明LinqDBDataContext类对象lqDB,声
明实体类对象info,并设置该类对象中的实体属
性,为实体属性赋值,然后调用方法
InsertOnSubmit将实体类对象info添加到lqDB
•}
select子句
• 在LINQ查询表达式中,select子句指定查询结果的
类型和表现形式。LINQ查询表达式必须以select子
句或group子句结束。
• int[] values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
• var value = from v in values
LINQ查询常用子句
• LINQ查询表达式是LINQ中非常重要的一部分内容
,它可以从一个或多个给定的数据源中检索数据, 并指定检索结果的数据类型和表现形式。
• LINQ查询表达式由一个或多个LINQ查询子句按照
一定的规则组成。LINQ查询表达式包括from子句 、where子句、select子句、orderby子句、group 子句、into子句、join子句和let子句,
பைடு நூலகம்

where v < 3 || v > 7

orderby v descending

select v;
• //输出查询结果
• Response.Write("查询结果:<br>");
• foreach (var i in value)
•{

Response.Write(i + "<br>");
•}
LINQ技术概述(1)
• LINQ to Objects组件:可以查询任何可枚举的集
合,如数据(Array和ArrayList)、泛型列表 List<T>、泛型字典Dictionary<T>以及用户自定 义的集合,而不需要使用LINQ提供程序或API。
• LINQ to XML组件:可以查询或操作XML结构的数
LINQ防止SQL注入式攻击
• 2.LINQ防止SQL注入式攻击

LINQ to SQL用于数据存取时,清除了SQL注
入式攻击的存在。当LINQ执行每次查询时都加上
据(如XML文档、XML片段和XML格式的字符串 等),并提供了修改文档对象模型的内存文档和支 持LINQ查询表达式等功能,处理XML文档的全新 编程接口。
LINQ技术概述(1)
• LINQ可以查询或操作任何存储形式的数,如对
象(集合、数组、字符串等)、关系(关系数据 库、数据集等)以及XML。LINQ架构 如图所示。
from子句
• LINQ查询表达式必须包括from子句,且以from子
句开头。
• from子句指定查询操作的数据源和范围变量。其中
,数据源不但包括查询本身的数据源,而且还包括 子查询的数据源。范围变量一般用来表示源序列中 的每一个元素。
from子句
• int[] values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
使用LINQ操作SQL Server数据库
• 1.查询数据库中的数据
• string str = "Data Source=WIN-
VHC8TL4QK7T;Initial Catalog=db_22;User
ID=sa;pwd=Scy1992";

LinqDBDataContext lqDB = new
相关文档
最新文档