版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linq数据技学习学习LINQ数 可以解决那些问题,第二步掌握并熟练使用LQIN 了解LINQ 学习LINQ 学会使用LINQ 掌握使用LINQLINQ将查询直接引入到.NetFrameWork3.5所支持的编程语言(C#VB.Net等)中。LINQ查询查询与LINQSQLXML结构数据的语言集成查询(LINQ)VisualStudio2008C#VisualBasic语言语法行扩展以支持几乎任何类型的数据。VisualStudio2008包含LINQ提供程序的程序集,这些程序集支持将LINQ与.NETFramework集合、SQLServer数据库、ADO.NETXMLLINQ是VisualStudio2008和.NetFramework3.5版中一项突破性的创新,它在对象领域和LINQ3部分组成:LINQtoADO.NETLINQtoObjects、LINQtoXML。其中,LINQtoADO.NET可以分为两部分:LINQtoSQL和LINQtoDataSet。LINQ可以查询或操作任何形式的数据,LINQ的组成说明如下: LINQtoDataSet组件,可以查询DataSet对象中的数据,并对这些数据进行检索、过 LINQtoObjectsIenumerableIenumerable<T>集合,也就是说可以查询任何可枚举的集合,如数据(Array和ArrayList、泛型列表List<T>、泛型字典Dictionary<T>等,以及用户自定义的集合,而不需要使用LINQ提供程序或API。 LINQtoXMLXML结构的数据(XML文档、XML片段、XML格式的字符串等LINQ查询表达式等功能,以及处理XML文档的全新的编程接口。 LINQADO.NET的关使用LINQ可以把数据从数据库的表中传递到内存的对象中,并将数据源转换为基于IEnumerable的对象集合。这样,传统的操作数据库方法转换为使用LINQ查询和处理基于IEnumerable的对象集合。由于LINQ查询被嵌入到.NETFramework3.5支持的编程语言中,因此,在创建LINQ查询表达式时,可以使用VisualStudio2008的智能支持功能。LINQ提供了名称为LINQtoADO.NET的技术专门用来处理关系数据。其中,LINQtoADO.NET包括两种独立的技术:LINQtoDataSet和LINQtoSQL。使用LINQtoDataSet查询或处理DataSet对象中的数据,使用LINQtoSQLLINQtoDataSet基于ADO.NETADO.NET提供了更加高级的、简单的查询技术,它和ADO.NET之间的关系,如图12.1所示。LINQto12.1LINQtoDataSet与ADO.NET的使用LINQtoSQL可以创建LINQ编程模型,并直接映射到关系型数据库(如SQLServer数据库等)之上。LINQtoSQL可以直接创建表示数据的.NETFramework的类,并将这些类映射到数据库中的表、视图、过程、函数等对象。因此,使用LINQtoSQL可以直接操作表LINQLINQ查询表达式是LINQ中非常重要的一部分内容,它可以从一个或多个给定的数据源LINQ查询表达式由一个或多个LINQ查询子句按照一定的规则组成。LINQ查询表达式包括:from子句、where子句、select子句、12.1LINQ子句说查询子说form子指定查询操作的数据源和范围变where子筛选元素的逻辑条件,一般由逻辑运算符select子指定查询结果的类型和表现orderby子对查询结果进行排序(降序或升序group子对查询结果进行分into子提供一个临时的标识符。该标识可以join、group和select子句的结join子连接多个查询操作的数据Let子引入用于查询表达式中子表达式结果的范围变下面对一些常用的LINQfrom子LINQ查询表达式必须包括formfrom子句开头。如果该查询表达式还包括子查formForm子句指定查询操作的数据源和范围变量。int[]values={1,2,3,4,5,int[]values={1,2,3,4,5,6,7,8,9,0varvalue=fromvinwherev<5selectv;Response.Write("查询结果foreach(varvin{}12.2where子
12.2from子句。每一个where子句可以包含1个或多个布尔条件表达式。对于一个LINQ查询表达式而言,wherewhere子句在查询表达式中中演示的代码就使用where子句。int[]values={1,2,int[]values={1,2,3,4,5,6,7,8,9,0varvalue=fromvinwherev<9&&v>5selectv;Response.Write("查询结果foreach(varvin{}12.3select子
12.3where子句查询结在LINQ查询表达式中,select子句指定查询结果的类型和表现形式。LINQ查询表达式必须以select子句或group子句结束。下面示例代码演示了包含最简单selectint[]int[]values={1,2,3,4,5,6,7,8,9,0varvalue=fromvinwherev<5selectv;Response.Write("查询结果foreach(varvin{}12.412.4select子句查询结groupby子在查询表达式中,groupby子句对查询的结果进行分组,并返回元素类型为 protectedvoidPage_Load(objectsender,EventArgsprotectedvoidPage_Load(objectsender,EventArgs{int[]values={1,2,3,4,5,6,7,8,9,0varvalue=fromvingroupvbyv%2==0;foreachvariin{foreach(intjin{Response.Write(j+}}}12.512.5groupby子句查询结orderby子在LINQ查询表达式中,orderby子句可以对查询结果的排序。排序方式可以为“升序”或orderbyprotectedvoidPage_Load(objectsender,protectedvoidPage_Load(objectsender,EventArgs{int[]values={5,8,3,4,1,6,7,2,9,0varvalue=fromvinwherev<3||v>6orderbyvdescendingselectv;//输出查询结foreach(variin{Response.Write(i+}}12.612.6orderby子句查询结果排into子intojoin及select子句的结果。下面通过一个示例来演示into0使用group使用into子句创建临时标识符g查询结果使用where8protectedvoidPage_Load(objectprotectedvoidPage_Load(objectsender,EventArgs{int[]values={1,2,3,4,5,6,7,8,9,0varvalue=fromvingroupvbyv%2==0intowhereg.Max //分组后查找组中大于8的selectforeachvariin{foreach(intjin{Response.Write(j+}}}12.712.7into子句查询结LINQLINQLINQ数据源,LINQDBML文SQLServer2005db_LinQLINQ数据源,详VisualStudio2008FrameworkSDKv3.5的空单中选择“添加新项弹出“添加新项”框,如图12.8所示。12.8添加新服务资源管理器中连接SQLServer2005数据库中的db_LinQ数据库,然后将表映射到LinqDB.dbml中(可以将tb_info表拖拽到设计视图中12.912.9映射tb_info数据LinqDB.dbml文件创建一个名称为LinqDBDontext的数据上下文类,为db_LinQ据库提供查询或操作数据库的方法,LINQ数据源创建完毕。LinqDBD ontext类中的程序代码均自动生成,如图12.10所示。图12.10 ontext类中自动生成程序代查询数据库中数使用LINQtoSQL可以实现查询数据库中的数据与传统的SQL语句或过程相比查询LINQtoSQLdb_LinQtb_info数据表中的数.创建一个Web窗体,命名为FindInfo.aspxWeb窗体中添加一个GridView在页面的Page_Load下编写LINQ查询代码LinqDBDontext类对象lqDB。LINQ查询表达式查询ID0result将result变量中的结果设置GridView控件的数据源并且绑定数据显示查询结果12.1112.11LINQ查询结tb_infotb_infoinfo=newvarresult=fromfinwheref.ID>0selectf;GridView1.DataSource=result;}protectedvoidPage_Load(objectsender,EventArgs{ ontextlqDB= 向数据库中添加数使用LINQtoSQL不仅可以实现查询数据库中的数据,而且还能能够实现向数据库中添加LINQtoSQLdb_LinQtb_info数据表中添加数据。实现该功能主Tabel<T>类的实例中,SubmitChanges方法计算要插入、更新或实现使用LINQ.WebAddInfo.aspxWebTextBox控件、DropDownList控件及按钮控件。在页面中按钮控件的Click下编写LINQ添加数据代码LinqDBDontext类对象lqDB。实体类对象infoInsertOnSubmit()infolqDB对象的tb_Info表中,其次再调用SubmitChanges方法将实体类中数据添加到数据库中,如图12.12所示。12.12LINQ查询结tb_infoinfotb_infoinfo=new//执行添}//要添加的info.type=DropDownList1.Text;info.title=txtTitle.Text;=txtInfo.Text;info.=txt protectedvoidimgBtnAdd_Click(objectsender,ImageClickEventArgs{ ontextlqDB= 修改数据库中数两小节中讲解了使用LINQtoSQL实现查询数据库中的数据和向数据库中添加数据。下面使用LINQtoSQL修改db_LinQ数据库中tb_info数据表中数据。使用LINQ修改数据库中数据的设计思路步骤如下.创建一个Web窗体,命名为UpdateInfo.aspx在页面的的Load下编写LINQ修改数据代码LinqDBDontext类对象lqDB。使用LINQ调用SubmitChanges方法将修改的数据保存到数据库中。数据修改前后如图12.1312.14varvarresult=fromuinwhereu.ID==478selectu;//设置修改该数foreach(tb_infoinfoin{招聘若干}业务人员,有经验者优先录}//查询要修改的数protectedvoidPage_Load(objectsender,EventArgs{ ontextlqDB= 12.13删除数据库中数
12.14几节中已经讲解了使用LINQtoSQL修改数据库中数据,那么本节将讲解使用LINQtoSQL实现删除数据库中的数据。.创建一个Web窗体,命名为DeleteInfo.aspx在页面的的Load下编写LINQ修改数据代码LinqDBDontext类对象lqDB。使用LINQresultDeleteAllOnSubmitSubmitChanges方法,删除指定的数据并提交到数据库中。删除数据前后如图12.15和12.16所示。////查询要删除的数varresult=fromuinwhereu.ID==1selectu;//删除数据,并提交数据}protectedvoidPage_Load(objectsender,EventArgs{ ontextlqDB= 12.1512.16LINQDropDownList12.3节中讲解了使用LINQ查询和操作数据库,那么本节介绍将LINQ查询的结果绑定到DropDownList控件中。LINQ查询结果绑定到DropDownList控件的设计思路步骤如下.创建LINQ12.3节中的LinqDB.dbml创建一个Web窗体,命名为DropDownList.aspx,在Web窗体中主要添加一个DropDownList在页面的Page_Load下编写实现该功能的代码LinqDBDontext类对象lqDB。创建LINQresult将result变量中的结果设置DropDownList控件的数据源,并且显示查询结果,如图12.17所示。12.17LINQ查询结果绑定到DropDownList控protectedprotectedvoidPage_Load(objectsender,EventArgs{ ontextlqDB= //查询结varresult=fromuinwhereu.ID>1selectnew{Type=//绑定查询DropDownList1.DataSource=result;}LINQGridView12.3节中讲解了使用LINQ查询和操作数据库,那么本节介绍将LINQ查询的结果绑定到GridView控件中。LINQ查询结果绑定到GridView控件的设计思路步骤如下.创建LINQ12.3节中的LinqDB.dbmlWebGridView.aspxWebGridView控在页面的Page_Load下编写实现该功能的代码LinqDBDontext类对象lqDB。创建LINQ,创建的字段类型将会在绑定GridView12.18所示,最后将查询结果保存到result变量中。将result变量中的结果设置GridView控件的数据源并且显示查询结果如图设置设置英文标题字设置中文标题字
12.18LINQ查询结果绑定到GridView控////varresult=fromuinwhereu.ID>1selectnew{protectedvoidPage_Load(objectsender,EventArgs{ ontextlqDB= GridView1.DataSourceresult;}LINQDataList12.3节中讲解了使用LINQ查询和操作数据库,那么本节介绍将LINQ查询的结果绑定到DataList控件中。LINQ查询结果绑定到DataList控件的设计思路步骤如下.创建LINQ12.3节中的LinqDB.dbml<td<spanclass="shenlancu">『<%DataBinder.Eval(Container.DataItem,"type%>』</span><spanclass="banhui"><%<td<spanclass="shenlancu">『<%DataBinder.Eval(Container.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市西南师大附中2026年初三第九次适应性考试物理试题含解析
- 企业沟通标准化模板分享
- 团队建设活动策划与评估方案
- 办公场所信息安全事情事后恢复预案
- 描述家乡四季之美写景文章(11篇)
- 客户满意度与质量追溯承诺书3篇
- 技术人员工作流程管理模板
- 快速规划自动化设备调整清单
- 农业科技领域的承诺书(6篇)
- 单位债务及时偿付责任承诺书7篇
- 2025年高职(城市轨道交通机电技术)设备调试阶段测试题及答案
- 2026年考试题库北汽集团高管知识水平测试
- 核电防异物管理指南(核心版)
- 电厂防汛课件
- 日志观察及写作指导手册
- 人工智能在高职机械专业教学中的应用研究
- 高标准农田建设项目操作方案指南
- 2026年上饶职业技术学院单招职业技能考试必刷测试卷附答案
- 野战生存课件军用
- 环卫车辆安全行驶培训课件
- 刷漆搭架施工方案
评论
0/150
提交评论