多表查询

该博客介绍在Visual Studio 2015中进行数据库多表查询。因单表无法实现所需功能,需连接多张表。通过建立实体类studentVo,使用join连接多个表,实现数据查询,并使用LayuiTablePage方法进行分页,最后将查询结果显示在页面上。

多表查询

写好了数据库,建好了表,然后把数据库引入到Visual Studio 2015中
我们为了实现一些功能,靠数据库单单的一个表是完成不了的,所以我们就要连表,连接多张表来实现我们需要的功能
数据表格的数据查询
为了把下面的这些数据查询出来,一张表是不行了,要多张表连接起来,才能把下面这些数据给全部查出来
在这里插入图片描述
建一个实体类studentVo继承这张表
PW_Student这有只有外键ID AcademeID,而我们需要的是AcademeName,引用了studentVo就可以查询AcademeName 这些已经些写在studentVo里面的
在这里插入图片描述
方法名为selectStudentAll
LayuiTablePage是为了分页封装好了的方法,查询出来数据太多了的话,如果不分页就不怎么好看
public ActionResult selectStudentAll(LayuiTablePage layuiTablePage)
{
List<student> listStudent =
//给PW_Student起名为tbStudent,从tbStudent查
(from tbStudent in myModels.PW_Student

// join 连接表,给SYS_Academe起名为tbAcademe,用tbStudent这张表的外键ID AcademeID连接tbAcademe这张表的主键ID AcademeID
Join tbAcademe in myModels.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID

// join 连接表,给SYS_Specialty起名为tbSpecialty,用tbStudent这张表的外键ID SpecialtyID连接tbSpecialty这张表的主键ID SpecialtyID
join tbSpecialty in myModels.SYS_Specialty on tbStudent.SpecialtyID equals tbSpecialty.SpecialtyID

// join 连接表,给SYS_Grade起名为tbGrade,用tbStudent这张表的外键ID GradeID连接tbGrade这张表的主键ID GradeID
join tbGrade in myModels.SYS_Grade on tbStudent.GradeID equals tbGrade.GradeID

// join 连接表,给SYS_Class起名为tbClass,用tbStudent这张表的外键ID ClassID连接tbClass这张表的主键ID ClassID
join tbClass in myModels.SYS_Class on tbStudent.ClassID equals tbClass.ClassID

//join 连接表,给PW_Use起名为tbClass,用tbStudent这张表的外键ID UserID连接tbUser这张表的主键ID UserID
join tbUser in myModels.PW_User on tbStudent.UserID equals tbUser.UserID

//排序 根据tbStudent的studentID 倒序排序
orderby tbStudent.studentID descending
select new studentVo
{
//查studentID ,从tbStudent这张表里查studentID
studentID = tbStudent.studentID,

//查UserID,从tbUser这张表里查UserID
UserID = tbUser.UserID,

//查StudentNumber,从tbStudent这张表里查StudentNumber
StudentNumber = tbStudent.StudentNumber,

//查StudentName,从tbStudent这张表里查StudentName
StudentName = tbStudent.StudentName,

//查StudentIDNum,从tbStudent这张表里查StudentIDNum
StudentIDNum = tbStudent.StudentIDNum,

//查StudentSex,从tbStudent这张表里查StudentSex
StudentSex = tbStudent.StudentSex,

//查AcademeName,从tbAcademe这张表里查AcademeName
AcademeName = tbAcademe.AcademeName,

//查SpecialtyName,从tbSpecialty这张表里查SpecialtyName
SpecialtyName = tbSpecialty.SpecialtyName,

//查GradeName,从tbGrade这张表里查GradeName
GradeName = tbGrade.GradeName,

//查ClassName,从tbClass这张表里查ClassName
ClassName = tbClass.ClassName,

//查UserNuber,从这张表里查UserNuber
UserNuber = tbUser.UserNuber

}).ToList();

//计算数据总条数
int totalRow = listStudent.Count();

//分页数据

List<studentVo> dbStudent = listStudent
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();

//实例化

LayuiTableData<studentVo> layuiTableData = new LayuiTableData<studentVo>();

//总数

layuiTableData.count = totalRow;

//分页总数据

layuiTableData.data = dbStudent;

//把总数和分页总数据返回到页面

return Json(layuiTableData, JsonRequestBehavior.AllowGet);

}
查询出来的显示在页面上的数据
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值