linq 实现查询字符串拼接 : And 和 OR 两种方式
2012-04-13 17:22
441 查看
普通查询方法:
现在我们使用linq来实现上边的代码:
如果查询字符串内 不是AND,而是OR 的话
最终linq显示为:
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,只有到此处才会执行 }
如果查询字符串内 不是AND,而是OR 的话
public string Test(string a, string b, string c,string d) { string sql = "SELECT * FROM Users WHERE 1=1"; if (!string.IsNullOrEmpty(a)) { sql += " OR name='" + a + "'"; } if (!string.IsNullOrEmpty(b)) { sql += " OR age='" + b+ "'"; } if (!string.IsNullOrEmpty(c)) { sql += " OR sex='" + c + "'"; } if (!string.IsNullOrEmpty(d)) { sql += " OR address='" + d + "'"; } return sql.ToString(); }
最终linq显示为:
public void Test(string a,string b,string c,string d) { QueryContext query = new QueryContext(); var q1 = from u in query.Users where u.name== a && a != "" || u.age == b && b != "" || u.sex == c && c != "" || u.address ==d && d !="" select u; q1.ToList(); }
相关文章推荐
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- ASP EF框架,部分列查询。linq表达式和lamb表达式两种方式实现
- 查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)
- c# 使用linq查询子句方式实现 字符串数组统计操作
- iOS拼接json字符串的两种方式
- MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)
- Oracle数据库日期范围查询的两种实现方式
- js的两种查询方式 LHS and RHS
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件
- HQL实现模糊查询两种传参方式
- 实现查询字符串参数—(ES5与ES6两种语法对比)
- SQLServer 存储过程中不拼接SQL字符串实现多条件查询
- SQLServer 存储过程中不拼接SQL字符串实现多条件查询
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件