zoukankan      html  css  js  c++  java
  • linq 实现查询字符串拼接 : And 和 OR 两种方式

    1. N年前我们是这样来 拼接查询字符串的:

      [c-sharp] view plain copy
       
      1. public string Test(string a, string b, string c,string d)  
      2.    {  
      3.        string sql = "SELECT * FROM Users WHERE 1=1";  
      4.        if (!string.IsNullOrEmpty(a))  
      5.        {  
      6.            sql += " AND name='" + a + "'";  
      7.        }  
      8.        if (!string.IsNullOrEmpty(b))  
      9.        {  
      10.            sql += " AND age='" + b+ "'";  
      11.        }  
      12.        if (!string.IsNullOrEmpty(c))  
      13.        {  
      14.            sql += " AND sex='" + c + "'";  
      15.        }  
      16.        if (!string.IsNullOrEmpty(d))  
      17.        {  
      18.            sql += " AND address='" + d + "'";  
      19.        }  
      20.        return sql.ToString();  
      21.    }  
       

      现在我们使用linq来实现上边的代码:

      [c-sharp] view plain copy
       
      1. public void Test(string a, string b, string c,string d)  
      2.        {  
      3.            QueryContext query = new QueryContext();  
      4.            var q = from u in query.Users  
      5.                     select u;  
      6.            if (!string.IsNullOrEmpty(a))  
      7.            {  
      8.                q = q.Where(p => p.name == a);  
      9.            }  
      10.            if (!string.IsNullOrEmpty(b))  
      11.            {  
      12.                q = q.Where(p => p.age == b);  
      13.            }  
      14.            if (!string.IsNullOrEmpty(c))  
      15.            {  
      16.                q = q.Where(p => p.sex == c);  
      17.            }  
      18.            if (!string.IsNullOrEmpty(d))  
      19.            {  
      20.                q = q.Where(p => p.address == d);  
      21.            }  
      22.            q.ToList();  //上边的所有if,只有到此处才会执行  
      23.        }  
  • 相关阅读:
    Lexical Sign Sequence
    (UPCOJ暑期训练)Tally Counters
    (2019hdu多校第十场) Welcome Party
    (2019hdu多校第十场1003) Valentine's Day
    更新,线段树模板(支持相关基本操作)
    linux(deepin)下Clion的安装及环境配置
    2019牛客第7场——C(Governing sand)
    【数论】数论之旅:N!分解素因子及若干问题
    [二分]Kayaking Trip
    [数论之旅]数学定理
  • 原文地址:https://www.cnblogs.com/tsql/p/8570893.html
Copyright © 2011-2022 走看看