zoukankan      html  css  js  c++  java
  • Sqlite 参数化 模糊查询 解决方案

    转自:https://codedefault.com/2018/does-dapper-support-the-like-operator-in-csharp-application

    问题描述

    如题,在.NET/C#的程序开发中,使用Dapper查询数据时,如何实现类似SQL查询语句中的like操作,如:

    var data = conn.Query(@"
        select top 25 
        Term as Label, 
        Type, 
        ID 
        from SearchTerms 
        WHERE Term like '%@T%'", 
        new { T = (string)term });
    

    以上的语句执行后的结果是错误的,在Dapper中,类似SQL语句中的like应该如何处理呢?

    方案一

    term = "whateverterm";
    var encodeForLike = term => term.Replace("[", "[[]").Replace("%", "[%]");
    
    string term = "%" + encodeForLike(term) + "%";
    var data = conn.Query(@"
       select top 25 
      Term as Label, 
      Type, 
      ID 
      from SearchTerms 
      WHERE Term like @term", 
      new { term });
    

    方案二

    string query = "SELECT * from country WHERE Name LIKE CONCAT('%',@name,'%');"
    var results = connection.query<country>(query, new {name});
    

    方案三

    db.Query<Remitente>("SELECT * 
                         FROM Remitentes 
                         WHERE Nombre LIKE @n", new { n = "%" + nombre + "%" })
                       .ToList();
  • 相关阅读:
    面向对象简介
    方法简述
    数组,排序方法
    循环结构
    类型转换、流程控制
    基本数据类型、变量、运算符
    基础语法、进制转换、环境配置
    python学习之字典
    python学习之字符串
    jmeter控制器
  • 原文地址:https://www.cnblogs.com/wanglg/p/9851273.html
Copyright © 2011-2022 走看看