ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多条件查询数据

2019-05-08 19:49:02  阅读:232  来源: 互联网

标签:ClassID GradeID listStu 查询 AcademeID StudentInfo 条件 tbStudent 数据


1想要多条件查询数据,既然是有条件的那么肯定就是需要传递参数的了,一般在我们渲染好一个表格,如果没有条件查询那么,我们就可以直接在控制器创建方法获取相应的数据之后返回给试图就可以了。

1.     
多条件查询就是根据不同的条件去查询数控库中相应的所以数数据中根据条件筛选数数据,好如一个班里面有五十个学生,每个学生都有自己的姓名、性别、身份证号码、班级等数据,如果你没有参数就是没有条件去学生条查询学生数据那么你得到的是五十个学生的数据,如果你不需要所以学生的数据,你这是需要莫一个学生或者某一部分学生的数据,那么你就需要传递参数来筛选数据,筛选的数据是在查询出来的所以数据的基础上进行的,假如你想根据班级和性别查询符合条件的学生的信息,就需要传递班级ID和性别,根据这两个条件去筛选数据

2.     
下面通过一个例子来更好理解多条件查询,下面代码来源于老师授课内容

3.     
我们先获取页面上我们选择到的数据,这些数据就是作为参数去筛选数据的,一般都是通过下拉框和文本框选择参数,给给查询按钮一个点击事件调用方法tabStudentSearch();,在方法里面判断获取到的相应参数是否存在值,如果没有就赋值为零,这是为了在控制器中可以通过判断参数的值是否为零而是否作为参数筛选数据做铺垫

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,

}

});

}

4.     
在控制器中创建方法接收试图传递过来的参数,先在数据库中联表查询全部数据,之后再根据传递过来的参数的值是否为零而判断是否启用这个参数去筛选数据,如果参数值为零,声明不需要修改参数去筛选数据

public ActionResult SelectStudentAll(LayuiTablePage layuiTablePage, int AcademeID, int GradeID, int ClassID, string StudentInfo)//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 list = listStu

.Skip(layuiTablePage.GetStartIndex())//分页开始序号

.Take(layuiTablePage.limit)//返回总数

.ToList();

//调用分页封装类

LayuiTableData layuiTableData
= new LayuiTableData();

layuiTableData.count = intTotalRow;//行总数

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

return
Json(layuiTableData, JsonRequestBehavior.AllowGet);

5.     
        }

标签:ClassID,GradeID,listStu,查询,AcademeID,StudentInfo,条件,tbStudent,数据
来源: https://blog.csdn.net/qq_44489422/article/details/89969509

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有