我正在使用文本框,组合框和DateTimePicker构建复杂的搜索查询。
对于文本框和组合框,查询工作正常,但是在两个日期之间添加datetimepicker进行查询时,我什么也没得到...
将EF6与LINQ一起使用...
所以,我的课程要存储数据:
public class Projetos
{
public int ID { get; set; }
public string Conc { get; set; } //Combobox
public string Ent { get; set; } //Combobox
public string Def { get; set; } //Textbox
public DateTime DataR { get; set; }
}
第一个查询并返回结果:
public IEnumerable<Proj> LoadProj()
{
var ctx = new JEntities();
var query = (from p in ctx.tblProjs.AsQueryable()
join c in ctx.tblConcs on p.ConcID equals c.ConcID
join e in ctx.tblEnts on p.EntID equals e.EntID
select new Proj
{
ID = p.ProjID,
Conc = c.NameConc,
Ent = e.NameEnt,
Def = p.DefP,
DataR = p.DataR
});
// The combination of these 3 controls works fine!
if (TxtDefP.TextLength > 0)
{
query = query.Where(s => s.DefP.Contains(TxtDefP.Text));
}
if(CmbCon.SelectedValue != null)
{
string SelectedValue = CmbConc.GetItemText(CmbConc.SelectedItem);
query = query.Where(s => s.Conc == SelectedValue);
}
if(CmbEnt.SelectedValue != null)
{
string SelectedValue = CmbEnt.GetItemText(CmbEnt.SelectedItem);
query = query.Where(s => s.Ent == SelectedValue);
}
//When filtering between these 2 dates, I get no results
if (DataRFrom.Checked && DataRTo.Checked)
{
DateTime begin = DataRFrom.Value.Date;
DateTime end = DataRTo.Value.Date;
query = query.Where(s => s.DataR > begin && s.DataR < end);
}
return query.ToList();
}
在SQL中,我有这样的日期...也许SQL中的Date格式搞砸了所有这一切?
我的问题是,为什么具有此日期范围的记录在数据库中,为什么我在2018-06-01和2018-06-06之间无法得到任何结果?
谢谢。
答案 0 :(得分:0)
缺少日期属性:
query = query.Where(s => s.DataR.Date> begin && s.DataR.Date