多个搜索框

时间:2010-04-08 17:33:45

标签: c# asp.net linq

我在asp页面上有6个文本框和一个搜索按钮。用户可以通过在任何搜索框中输入文本进行搜索。我正在使用Linq查询我的sql server数据库,我可以编写查询。但问题是因为有很多文本框我必须编写很多查询。 例如:用户可以通过在所有6个文本框或5个文本框或4或3或2或1中输入数据进行搜索。您可以查看我必须编写多少查询。有没有办法编码这类问题,或者我应该只编码所有可能的组合。

谢谢

1 个答案:

答案 0 :(得分:3)

一般情况下,当我像你一样进行过滤时,我只是进行空检查。

 public List<TABLE> Filters(string a, string b, string c ...){
    var query = (from x in context.TABLE
            where 
                  (string.IsNullOrEmpty(a) || x.A ==a) &&
                  (string.IsNullOrEmpty(b) || x.B ==b) &&
                  (string.IsNullOrEmpty(c) || x.C ==b) 
                 select x
    );

   return query.ToList();
  }

加入

   var baseQuery = (from x in context.TABLE
            where 
                  (string.IsNullOrEmpty(a) || x.A ==a) &&
            select x
    );

  if(!string.IsNullOrEmpty(b)){
     baseQuery = (
        from item in baseQuery
        join b in context.Bs on item.JoinMeCode equals b.JoinMeCode
        select item

     );
  }