有很多查询条件,当条件为NUll时不做查询,只有条件有值时才作为查询条件查询。
时间 AddTime
名称 Name
。。。
//添加时间开始
string strAddTimeStart = txtAddTimeStart.Text;
DateTime AddTimeStart = SqlDateTime.MinValue.Value;
if (!string.IsNullOrEmpty(strAddTimeStart))
{
AddTimeStart = Convert.ToDateTime(strAddTimeStart );
}
//添加时间结束
string strAddTimeEnd = txtAddTimeEnd.Text;
DateTime AddTimeEnd = SqlDateTime.MaxValue.Value;
if (!string.IsNullOrEmpty(strAddTimeEnd))
{
AddTimeEnd = Convert.ToDateTime(strAddTimeEnd);
}
var resultsql = from w in students
where
(!string.IsNullOrEmpty(strAddTimeStart) ? AddTimeStart >= w.addTime : true) &&
(!string.IsNullOrEmpty(strAddTimeEnd) ? AddTimeEnd >= w.addTime : true) &&
(!string.IsNullOrEmpty(OCState) ? w.Name.Equals(Name) : true)
select new
{w.name,
w.sex
};
需要注意的是这样
(!string.IsNullOrEmpty(strAddTimeStart) ? Convert.ToDateTime(AddTimeStart) >= w.addTime : true) 是不对的,会报无法识别的DateTime。
所以时间必须在外边转换。