多表查询

查询数据是做任何项目都需要用到的功能模块,下面我和大家分享一下我做的查询数据的一个功能点,下面是在整个学院表里直接查询某个学生,那么直接输入那个学生的学号或姓名便可,如图

未查询
在这里插入图片描述
把你想要查询的学生的学号或姓名输入里面,按查询,数据便出来了
在这里插入图片描述
如果你想要查询某个学院的某个年纪的某个班级,就直接在下拉框那里选择,再点击查询,数据便出来了
如图,下面是查询:计算机科学与技术学院,2016级,04121601班,所有的数据便对应的出来了,一共查
询到34条数据。
在这里插入图片描述
现在和大家分享一下代码,1、首先在控制器这边把方法写好,2、进行多条件查询,把学生表、学院表、专业表、年级表、班级表、用户表、连接起来进行查询,3、然后构建的实体类,4、再进行判断筛选、学院、年级、班级、的数据,5、获取总数,6、然后调用分页封装类便可。

 public ActionResult SelectStudentAll(LayuiTablePage layuiTablePage, int AcademeID, int GradeID, int ClassID, string StudentInfo)
    {
        var listStu = from tbStudent in myModels.PW_Student//学生表

                      join tbAcademe in myModels.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID//学院表

                      join tbSpcialty in myModels.SYS_Specialty on tbStudent.SpecialtyID equals tbSpcialty.SpecialtyID//专业表

                      join tbGrade in myModels.SYS_Grade on tbStudent.GradeID equals tbGrade.GradeID//年级表

                      join tbClass in myModels.SYS_Class on tbStudent.ClassID equals tbClass.ClassID//班级表

                      join tbUser in myModels.PW_User on tbStudent.UserID equals  tbUser.UserID//用户表

                      orderby tbStudent.studentID descending

                      select new Student//构建的实体类

                      {

                          studentID = tbStudent.studentID,//学生ID

                          UserID = tbStudent.UserID,//用户ID                             

                          StudentNumber = tbStudent.StudentNumber,//学号

                          StudentName = tbStudent.StudentName,//姓名

                          StudentIDNum = tbStudent.StudentIDNum,//身份证号

                          StudentSex = tbStudent.StudentSex,//性别

                          AcademeName = tbAcademe.AcademeName,//学院

                          SpecialtyName = tbSpcialty.SpecialtyName,//专业

                          GradeName = tbGrade.GradeName,//年级

                          ClassName = tbClass.ClassName,//班级

                          UserNuber = tbUser.UserNuber,//账号

                          AcademeID = tbStudent.AcademeID,//学院ID

                          SpecialtyID = tbStudent.SpecialtyID,//专业ID

                          GradeID = tbStudent.GradeID,//年级ID

                          ClassID = tbStudent.ClassID//班级ID

                      };

        if (AcademeID > 0)

        {

            //筛选学院数据

            listStu = listStu.Where(m => m.AcademeID == AcademeID);

        }

        if (GradeID > 0)

        {

            listStu = listStu.Where(m => m.GradeID == GradeID);

        }

        if (ClassID > 0)

        {

            listStu = listStu.Where(m => m.ClassID == ClassID);

        }

        if (!string.IsNullOrEmpty(StudentInfo))

        {

            listStu = listStu.Where(m => m.StudentNumber.Contains(StudentInfo) || m.StudentName.Contains(StudentInfo));

        }

        //获取总数

        var intTotalRow = listStu.Count();

        List<Student> list = listStu

           .Skip(layuiTablePage.GetStartIndex())

            .Take(layuiTablePage.limit)

            .ToList();

        //调用分页封装类

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

        layuiTableData.count = intTotalRow;//行总数

        layuiTableData.data = list;//具体显示数据

        return Json(layuiTableData, JsonRequestBehavior.AllowGet);

    }

再到视图这边把代码写好:
1、调用函数 tabStudentSearch(),2、获取input内容并判断 (学院、年级、班级)ID 等于空,
3、调用表格刷新函数reload,4、重定向到第1 页开始,5、赋值
就这样一步步有顺序去写代码,不能捣乱顺序,才会实现功能。
重定向到第 1 页开始这句代码一定要写:page: { curr: 1 }, 不然当你输入学号或姓名的时候,是搜索不到的,大家一定不要犯这种错误,我刚开始的时候经常犯这种错误,看起来这句代码好像没多大用处,但是少了这句代码,你的查询功能就是一个有
bug 的功能,当你的项目出现 bug 的时候,就会知道这句代码的重要性了。

   //多条件查询table
    function tabStudentSearch()
     {

        //获取input内容并判断

        var AcademeID = $("#searchAcademeID").val();

        if (AcademeID == "" || AcademeID == undefined) {

            AcademeID = 0;

        }

        var GradeID = $("#searchGradeID").val();

        if (GradeID == "" || GradeID == undefined) {

            GradeID = 0;

        }

        var ClassID = $("#searchClassID").val();

        if (ClassID == "" || ClassID == undefined) {

            ClassID = 0;

        }

        var StudentInfo = $("#searchStudentNumber").val();

        if (StudentInfo == undefined) {

            StudentInfo = "";

        }

        //调用表格刷新函数reload

        tabStudent = layuiTable.reload("tabStudent", {

            url: "/ExaminationManagement/SetExaminee/SelectStudentAll",

            //接口的其它参数。格式:where: {token: 'sasasas', id: 123}

            page: {

                curr: 1 //重新从第 1 页开始

            },

            where: {

                AcademeID: AcademeID,

                GradeID: GradeID,

                ClassID: ClassID,

                StudentInfo: StudentInfo,

            }

        });

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值