淘宝的多个条件搜索是怎么实现的呢?

解决方案 »

  1.   


    public string Test(string a, string b, string c,string d)  
       {  
           string sql = "SELECT * FROM Users WHERE 1=1";  
           if (!string.IsNullOrEmpty(a))  
           {  
               sql += " AND name='" + a + "'";  
           }  
           if (!string.IsNullOrEmpty(b))  
           {  
               sql += " AND age='" + b+ "'";  
           }  
           if (!string.IsNullOrEmpty(c))  
           {  
               sql += " AND sex='" + c + "'";  
           }  
           if (!string.IsNullOrEmpty(d))  
           {  
               sql += " AND address='" + d + "'";  
           }  
           return sql.ToString();  
       }  
     或使用linq来实现上边的代码:public void Test(string a, string b, string c,string d)  
           {  
               QueryContext query = new QueryContext();  
               var q = from u in query.Users  
                        select u;  
               if (!string.IsNullOrEmpty(a))  
               {  
                   q = q.Where(p => p.name == a);  
               }  
               if (!string.IsNullOrEmpty(b))  
               {  
                   q = q.Where(p => p.age == b);  
               }  
               if (!string.IsNullOrEmpty(c))  
               {  
                   q = q.Where(p => p.sex == c);  
               }  
               if (!string.IsNullOrEmpty(d))  
               {  
                   q = q.Where(p => p.address == d);  
               }  
      
               q.ToList();  
           }