开发工具与关键技术:Visual Studio ASP.NET MVC
作者:刘剑鸿
撰写时间:2019年07月25日 星期四
通过时间日期格式为参数进行模糊查询
刚学会查询操作,觉得有了这个查询操作,对数据的运用方便极佳。所需的数据都能在通过数据表格,或者其他的文本标签等等显示出来。然而,随着数据量的增加,发现找到想要的哪条数据越来越麻烦。因此又有了一种更方便的查询方法。。。
模糊查询是常见的一种查询方法,它能够具体找到我们所需求的数据。从而更方便的找到所想找的数据。就比如经常使用的百度:
通过在该文本框输入所想要的数据,就能查询到大概的数据。
当在数据表格进行查询时,只要把所进行筛选文本框的值放在封装的查询函数里面,然后处方封装的查询函数即可。一般在进行数据表格的查询,查询条件的文本框都不止有一个。例如:
下面是封装的查询函数的代码:
function tabSearchAchievement() {
var AcademeID = $("#sltAcademe").val();
var GradeID = $("#sltGrade").val();
var ClassID = $("#sltClass").val();
if (AcademeID != null && GradeID == null && ClassID == null) {//只根据学院ID查询学生信息
GradeID = 0;//年级ID
ClassID = 0;//班级ID
}
else if (AcademeID != null && GradeID != null && ClassID == null) {
ClassID = 0;//班级ID
}
TabStuAchievement =
layuiTable.reload("tabStuAchievement", {
url: "SelectAchievement",
page: {
curr:1,
},
where: {
AcademeID: AcademeID,
GradeID: GradeID,
ClassID: ClassID,
}
});
}
之所以设置if判断语句,是为了防止不不输入值时会触发的报错。Where语句是参数的链接,这是与控制器对应的参数链接。代码的格式和平时多表查询差不多。不同的是:
select new AchievementInfor{},下面要加上
if (AcademeID != 0)//筛选所以学院
{
listResult = listResult.Where(m
=> m.AcademeID == AcademeID);
}
if (GradeID > 0)
{
listResult = listResult.Where(m
=> m.GradeID == GradeID);
}
if (ClassID > 0)
{
listResult = listResult.Where(m
=> m.ClassID == ClassID);
}
通过lambda表达式进行对多表查询出来的数据进行筛选。
但是时间日期格式作为参数的话会比较特殊,而且lambda表达式的写法也稍微出现点变化。
例如:releaseTime是作为参数传递过来的,ReleaseTime是多表查询查出来的数据。那么它的写法就应该这样: if (!string.IsNullOrEmpty(releaseTime))
//发布时间不为空
{
//Convert.ToDateTime万能转换
DateTime dtreleaseTime = Convert.ToDateTime(releaseTime);
items = items.Where(p =>
p.ReleaseTime == dtreleaseTime);
}
Convert可以想象成转换器,它在这里把字符串类型的releaseTime,转换为DateTime类型的dtreleaseTime。进而将它们进行比较。