如果在DropDown中没有选择任何内容,如何从DB获取每个值?

时间:2014-06-23 11:06:22

标签: c# asp.net sql linq

我遇到了一个新问题,或者我的头部有点卡住了。

我有几个DropDownLists。在那里你可以选择一个价值或没有。在选择Value之后,两者对于LINQ语句中的where子句很重要。所以我需要的是,如果你选择一个它应该说的值(例如):

var result = from c in context.table
             where c.name == dropdown.selectedvalue
             select c.id;

这是更容易的部分。所以我的问题是,如果你在下拉列表中选择了null / empty字段,它应该给我DB的每个结果。与上面的相同声明一样,但没有where子句。

我最大的问题是,我有4个不同的DropDownLists,每个List都是where子句的元素。我的LINQ声明长约30行,我不想为每个案例复制声明5次。

var finishedReports = (from r in context.response
                       from c in context.maxCTs
                       from t in context.ticket
                       join tp in context.priorities
                           on t.ticket_priority_id equals tp.id
                       join ts in context.states
                           on t.ticket_state_id equals ts.id
                       from a in context.article
                       where (from ti in context.ticket
                              where ti.tn == r.tn
                              select new { ti.id }).Contains(new { id = a.ticket_id })
                       where r.change_time >= startdat &&
                           r.change_time <= enddat &&
                           r.tn == c.tn &&
                           t.tn == r.tn
                       //where t.queue_id == queueID &&
                       //    tp.id == priority &&
                       //    ts.name.Contains(status)
                       orderby r.tn
                       select new
                       {
                           r.tn,
                           r.title,
                           a.id,
                           a.a_subject,
                           a.article_type_id,
                           a.a_from,
                           tp.id,
                           ts.name,
                           r.change_time,
                           r.start_date,
                           r.create_date,
                           c.finish_date
                       }).Distinct();

当我从DropDownList中选择的值为null或为空时,如何在Statement中写入它应该从DB中获取每个数据? (上面代码中的注释行是where子句,用于比较下拉列表中的值)

感谢您的帮助,如果我的问题是令人困惑,我会改变它!

1 个答案:

答案 0 :(得分:1)

拥有这样的lambda,如果下拉列表中有值

,则只会生成SQL
where dropdown.value == "" || db.myfield == dropdown.value