linq 实现查询字符串拼接 : And 和 OR 两种方式

N年前我们是这样来拼接查询字符串的:现在我们使用linq来实现上边的代码:推荐:http://www.cnblogs.com/roucheng/p/dushubiji.html

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

// 何问起 hovertree.com
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();  //上边的所有if,只有到此处才会执行  
       }// 何问起 hovertree.com

推荐:http://www.cnblogs.com/roucheng/p/dushubiji.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120406.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样设计接口?

    怎样设计接口?

    2021年12月7日
  • python屏幕文字识别_python识别图片文字

    python屏幕文字识别_python识别图片文字因为学校要求要刷一门叫《包装世界》的网课,而课程里有200多道选择题,而且只能在手机完成,网页版无法做题,而看视频是不可能看视频的,这辈子都不可能看…所以写了几行代码来进行百度搜答案。思路如下:手机屏幕投影到电脑上;截图并识别图片文字;调用百度来进行搜索;提取html关键字。环境配置:python3.6、第三方库:pyautogui、PIL、pytesseract、识别引擎tesseract-…

    2022年6月6日
  • 使用SQL语句创建表(建立基本表数据的sql语句是)

    1.创建表的语法createtable表名(列1数据类型1,列2数据类型)tablespace表空间SQL:createtablestudent(IDNUMBERnotnull,NAMEVARCHAR2(20));表已创建…

    2022年4月18日
  • emule服务器地址列表地址

    emule服务器地址列表地址可能获得来源http://ed2k.2x4u.de/index.htmlServer.met地址.为ED2K使用..http://www.esel-paradies.de/server/server.methttp://www.edonkey2000.com/server.methttp://users.servicios.retecal.es/ljpadillam/Baltab/

    2022年6月15日
  • 通过select 和状态EINPROGRESS 实现socket 连接超时判断

    通过select 和状态EINPROGRESS 实现socket 连接超时判断调用connect连接一般的超时时间是75s,但是在程序中我们一般不希望等这么长时间采取采取动作。可以在调用connect之前设置套接字非阻塞,然后调用connect,此时connect会立刻返回,如果连接成功则直接返回0(成功),如果没有连接成功,也会立即返回并且会设置errno为EINPROCESS,这并不是一个致命错误,仅仅是告知你已经在连接了,你只要判断是它就继续执行后面的逻辑就行

    2022年7月17日
  • 建立数据库的方法有哪些_数据库应用原则

    建立数据库的方法有哪些_数据库应用原则1:需求分析好后,找实体,不要有所落下2:分析实体里所要涉及到的属性(比如学生,在这个数据库里我需要他的学号,但不需要他的籍贯)3:分析属性的类型,长度。要想的长远点,比如学生名字的长度,汉族一般几位就够了,可万一来个维族,那几位长度就不够用了。4:实体间的关系,要满足需求和现实5:写出关系模式6:优化关系模式(越满足后面的范式越好)7:建数据库。属性,约束等最好字母+单词(正确的),

    2022年9月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号