Sqlite 参数化 模糊查询 解决方案
Posted wanglgkaka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
以上是关于Sqlite 参数化 模糊查询 解决方案的主要内容,如果未能解决你的问题,请参考以下文章