多表查询方法及表格的初始化

作者:坚定的守猴

撰写时间:2019年5月5日

开发软件和关键技术:VS;多表查询

在做项目的过程中,我们对于表数据的查询有不同的方式,如果在项目所需要的数据可以一张表查询出来的话,就采用Linq单表查询的方式。但遇到需要多张表连接起来才能查询出来所需要的数据的话,就不止一张表查询这么简单了。现在我们来看一下涉及到多表的时候如何把这些所需要的数据查询并且能在表格上显示出来。

多表查询,相比于单表查询的话,它还多了条件筛选的这一步,目的就是确保查询出来的数据我们需要的数据相对应。现在我们就来看一个查询考生的信息的例子。
在这里插入图片描述

在这里插入图片描述
与单表查询的写法类似,引用StudentVo的实体类,通过这个实体类把这些需要表的字段都集中在一起,然后把它引用进来,开始查询所需要考生的数据。

在第一行那里是把在表格那边需要查询数据的ID传过来,在括号里面的四个ID是作为多条件查询的依据,在下面作为条件筛选的参数。

解说一下第二张图的代码,从数据库里面找到学院数据,然后就连接学生表的学院ID就等于学院表里面的学院ID。查询专业信息也是,找到数据库里面的专业信息,连接学生表的专业ID,就等于专业表里面的专业ID。下面还需要查询学生的年级、班级和用户的信息,都是按照这样的写法来写的。查询之后就把里面的数据进行倒序排序的处理。这样就方便查找之后新增进来新的数据。

在上面查询出来数据之后,我们就得让这些数据在表里面能够完整的显示出来,就得在控制器这边查询出来的数据名称与传过去视图表格的那边的名称一致。所以就引用一个StudentVo的实体类,把所需要查询的数据名称都列出来,进行ToList的方式查询。

下面就是条件的筛选
在这里插入图片描述

这个条件筛选的写法是采用了Lambda表达式的方式(与Linq的写法相比,Lambda表达式的写法要简洁方便一些),这条件筛选所起到的作用就是从上面所查询出来的数据找到我们需要的输出的数据。介绍一下它在这里的写法,采用If判断语句,如果所查询出来的学院ID的数据是确实有我们想要的数据,那就通过右边的表达式得出,左边就是算出来的结果。在学生表里面,得到的学院ID就等于查询出来得到的学院ID,然后就按照ToList的查询方式去查。年级和班级都按照这样的样式去查询的。到最后那里,就是学生信息类型不能为空,然后学生名称和编号都是按照上面的方式去查询。

在这里插入图片描述

到这里的话,就和Linq单表查询类似。先计算总行数,再把里面的所查询到的数据进行分页,之后就实例化一下数据文件。

在控制器这边的代码基本写完了,现在就看一下页面JS部分。

在这里插入图片描述

引用layui插件,按照插件所创建的表格格式,对表格的信息进行初始化,这表格里面的名称就是控制器所查询的数据名称是一致的。在下面就是分几页,每页显示多少条数据。

表格基本搭建好了,下面我们就来看一下多条件查询的方法
在这里插入图片描述
在这里插入图片描述

这四个ID就是作为参数传到控制器那边作为条件筛选的依据,在这里面就对它们作一个判断,传过来的学院、年级、班级和学生类型的值不能为空,就利用表格重载对这些数据进行刷新。

我们就先来看一下效果
在这里插入图片描述

表格里面的数据显示出来了,证明表格初始化的代码是被成功执行。现在进行输入条件进行查询一下

输入一个“陈”字,点击查询的按钮
在这里插入图片描述
在表格就显示所有关于“陈”字的数据就显示出来了(多条件查询也可以作为使用下拉框数据绑定进行查询的)

效果出来了,关于多表查询及表格初始化的基本思路就这么多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值