【发布时间】:2009-03-10 21:50:08
【问题描述】:
我正在使用 LINQ to SQL 查询并遇到了一个问题,我有 4 个可选字段来过滤数据结果。通过可选,我的意思是可以选择输入或不输入值。具体来说,一些文本框可能有一个值或一个空字符串,还有一些下拉列表可能已经选择了一个值,也可能没有......
例如:
using (TagsModelDataContext db = new TagsModelDataContext())
{
var query = from tags in db.TagsHeaders
where tags.CST.Equals(this.SelectedCust.CustCode.ToUpper())
&& Utility.GetDate(DateTime.Parse(this.txtOrderDateFrom.Text)) <= tags.ORDDTE
&& Utility.GetDate(DateTime.Parse(this.txtOrderDateTo.Text)) >= tags.ORDDTE
select tags;
this.Results = query.ToADOTable(rec => new object[] { query });
}
现在我需要添加以下字段/过滤器,但前提是它们由用户提供。
- 产品编号 - 来自另一个可以连接到 TagsHeaders 的表。
- 采购订单号 - TagsHeaders 表中的一个字段。
- 订单号 - 类似于 PO #,只是不同的列。
- 产品状态 - 如果用户从下拉列表中选择了此项,则需要在此处应用所选值。
我已经有的查询很好用,但是要完成这个功能,需要能够在 where 子句中添加这 4 项,只是不知道如何!
【问题讨论】:
-
在这里查看 Roscoe,它可能已经回答了。http://stackoverflow.com/questions/11194/conditional-linq-queries
标签: c# asp.net linq linq-to-sql