多条件筛选数据
开发工具与关键技术:Visual Studio
作者:胡宁淇
撰写时间:2019年6月1日
我们在查询数据的时,在某些条件下并不需要查询全部数据,而是通过条件来进行筛选我们所需要的数据,下面就是我们写的方法,多条件筛选数据
在上图中我们看到了四个条件,三个下拉框和一个input标签,因为下拉框绑定的是数据库中的数据,所以我们用int来接收收据,input从页面传输过来的数据是字符串,所以我们用string类型接收
public ActionResult SelectTitles(LayuiTablePage layuiTablePage, int TitleTypeID, int PointID, int UnitID, string stem) {
我们通过联表查询查询出我们所需要的字段,创建一个变量来接收
var listTitles = (from tbTitle in myModel.PW_Title
join tbTitleType in
myModel.SYS_TitleType on tbTitle.TitleTypeID equals tbTitleType.TitleTypeID
join tbDofd in myModel.SYS_Dofd on tbTitle.DofdID equals tbDofd.DofdID
join tbSubject in myModel.SYS_Subject
on tbTitle.SubjectID equals tbSubject.SubjectID
join tbPoint in myModel.SYS_Point on tbTitle.PointID equals tbPoint.PointID
join tbUnit in myModel.SYS_Unit on tbTitle.UnitID equals tbUnit.UnitID
用实体类接收查询出来的字段
select new TitlesInfor
{
TitleID =
tbTitle.TitleID,//题目ID
TitleType =
tbTitleType.TitleType,//题目类型
Dofd =
tbDofd.Dofd,//难度
Subject =
tbSubject.Subject,//科目
Point =
tbPoint.PointName,//知识点
Unit =
tbUnit.Unit,//使用单位
Stem =
tbTitle.Stem,//题目信息
RightKey =
tbTitle.RightKey,//正确答案
Remarks =
tbTitle.Remarks,//备注
ToVoidNo =
tbTitle.ToVoidNo,//是否作废
TitleTypeID =
tbTitle.TitleTypeID,//题目类型ID
PointID =
tbTitle.PointID,//知识点ID
UnitID = tbTitle.UnitID//使用单位ID
}).ToList();
把联表查询出来的数据进行筛选,因为页面四个条件中有三个传输的数据是ID,所以我们就进行判断,如果页面传过来的ID大于0,那么就在listTitles中进行查询,如果小于0就不进行处理
if (TitleTypeID > 0)
{
listTitles = listTitles.Where(m
=> m.TitleTypeID == TitleTypeID).ToList();
}
if (PointID > 0)
{
listTitles = listTitles.Where(m
=> m.PointID == PointID).ToList();
}
if (UnitID > 0)
{
listTitles = listTitles.Where(m
=> m.UnitID == UnitID).ToList();
}
最后一个条件传输过来的数据是字符串类型,所以我们用到的是模糊查询Contains
if (!string.IsNullOrEmpty(stem))
{
listTitles = listTitles.Where(m
=> m.Stem.Contains(stem)).ToList();
}
int totals = listTitles.Count();
List<TitlesInfor> listTitlesInfor = listTitles.OrderByDescending(m
=> m.ToVoidNo == false)
.Skip(layuiTablePage.GetStartIndex()).Take(layuiTablePage.limit).ToList();
LayuiTableData<TitlesInfor> layuiTableData = new LayuiTableData<TitlesInfor>()
{
count = totals,
data = listTitlesInfor
};
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}
我们在页面上输入看一下效果,如下图
我们看到只要题目中含有小明两个字的都查询出来了
上一篇: Java学习——基础知识之选择分支语句、循环语句和数组
下一篇: android 红外遥控器实现原理