Linq语句查询数据

Linq语句查询数据

开发工具与关键技术:VS  MVC
作者:小赵
撰写时间:2019/04/03

对于一个项目初学者来说,项目设计到完成的模块知识都是空白的;整个过程学习也遇到很多问题,尽管问题小,但对于一个初学者来说是很大的问题;在项目中数据表格绑定数据,需要项目链接数据库查询数据,定义一个linq语句查询数据的方法。
在写方法之前,需先了解linq查询语句,Linq to SQL 全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能;linq中where查询与SQL命令中的where作用类同,都是起到限定范围、过滤作用也就是查询条件,条件就是接where后面;在linq查询语句中,where条件可以带可以不带。Linq的基本语法包含如下的8个上下文关键字,其关键字和说明如下表格:

关键字 说明
from 指定范围变量和数据源
where 根据bool表达式从数据源筛选数据
select 指定查询结果中的元素所具有的类型或表现形式
group 对查询结果按照键值进行分组(IGrouping<TKey,TElement>)
into 提供一个标识符,它可以充当对join、Group或select字句结果的引用
orderby 对查询出的元素进行排序(ascending、descending)
join 按照两个指定匹配条件来equals链接数据源
let 产生一个用于存储查询表达式中的子表达表达式查询结果的范围变量

在写查询方法时,会常用到var、int、string等的关键字,那么这些关键字有什么含义呢?定义特定类型的var时:例如 string Str = “Test”; 这种写法被称为显式类型的声明,也被称为直接声明;使用var关键字定义一个变量时:例如 var Str = “Test”; 这被称为隐式类型声明或间接类型声明。当用一个列表list<>查询数据时,查询出来的数据要转化为ToList();根据查询数据的需要,常在查询出来的数据进行一个转换或指明查询数据的条数,.Single();查询单条数据,当没有数据或者有多条数据时会触发异常、.ToList();查询多条数据并转为List、.Count();查询数据总数。
用linq语句查询单表数据,可以声明list<>列表、匿名类型关键字var、Lambda表达式查询,其三种简单的单表查询语句如下截图:
在这里插入图片描述
截图资料是在学习项目设计的资料,上图的查询方法是用来绑定下拉框数据的控制层方法。
查询数据那么肯定要有数据源才有查询数据之说,在MVC的开发模式中,与数据库建立关系的是Model(模型)而Model表示应用程序核心(比如数据库记录列表),数据库的表存储在Models中称之为模型;要使用Models中的表,先实例化数据模型(Models.CQUPTEntities Mymodels = new Models.CQUPTEntities();)或者简写CQUPTEntities Mymodels = new CQUPTEntities();需要在控制器开始引用(using CQYU_MVC.Models;)不然会报错的;实例化数据模型之后就可以通过实例化的名称点出(.)你想要查询的数据表。比如,要查询学院的信息,可以通过list<>声明一个列表接收查询的数据,紧接着用linq语句的关键字from 自定义字段 in Mymodels.SYS_Acabeme(数据表名称)指明查询的数据源,再通过select指明要查询的数据,进行ToList()转换 ;将查询出来的数据通过return Json()返回。下截图是一个单表的查询数据,将查询出来的数据通过自封装的类LayuiTablePage<>进行分页操作,layuiTableDat<>显示分页数据;通过post、get、getJSON、ajax等请求方法,引用layui插件通过方法渲染表格
在这里插入图片描述
查询数据的方法很多,有涉及到条件、多个条件、链表查询等多种情况;对于刚接触linq语句查询的初学者来说,只看着查询的情况都觉得后怕,很多都不懂,连基本的实例化数据模型都不懂开始慢慢的接触摸索其中的相同之处与不同之处。写查询方法最基本是要明白,此次需要查询的是什么内容、查出来的数据用途,清楚数据的来源,了解数据源中都有哪些字段;对于多表链接查询,要清楚每个表之间的关系,通过哪个字段使表与表之间链接起来,需要的查询条件。
例如要在页面表格显示数据,而数据存储在数据库,数据如何显示出来呢?数据查询出来要完整的显示在页面上,需要对数据进行分页操作处理,使数据在一页显示不完整时数据会显示在下一页,提示用户查询出来的总数据量;下面是一个单表查询数据绑定页面表格的效果!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44519188/article/details/89047056
今日推荐