使用 Dapper 在 SQL 语句中参数化 LIKE 子句

发布于 2024-12-06 02:14:58 字数 569 浏览 0 评论 0原文

我想使用 Dapper 执行以下查询,它当前不会返回预期结果(我认为它必须将 @pName 参数视​​为单引号内的文字文本?):

var q = "SELECT * FROM Users WHERE Name LIKE '@pName%'";

@pName 是我为其分配值的参数执行查询。

如果我只是构建这样的 SQL,事情就可以了:

var q = "SELECT * FROM Users WHERE Name LIKE '" + name + "%'";

.. 但如果可能的话,我更愿意使用参数。

我正在使用以下代码执行查询:

o = _cn.Query<User>(q, new { pName = new DbString { Value = name, IsFixedLength = false, Length = 25, IsAnsi = true } }).ToList();

How do I get about this using Dapper?

I want to perform the following query using Dapper, which currently doesn't return expected results (I think it must be treating the @pName param as literal text within the single quotes?):

var q = "SELECT * FROM Users WHERE Name LIKE '@pName%'";

@pName is the param I assign a value to upon executing the query.

Things work if I just build the SQL like:

var q = "SELECT * FROM Users WHERE Name LIKE '" + name + "%'";

.. but I would prefer to use a param if possible.

I am executing the query using the following code:

o = _cn.Query<User>(q, new { pName = new DbString { Value = name, IsFixedLength = false, Length = 25, IsAnsi = true } }).ToList();

How do I got about this using Dapper?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过潦 2024-12-13 02:14:59
SELECT * FROM Users WHERE Name LIKE @pName + '%'
SELECT * FROM Users WHERE Name LIKE @pName + '%'
情独悲 2024-12-13 02:14:59

我想在这里添加另一个可能的解决方案:

var results = cn.Query("SELECT * FROM Table WHERE Column LIKE @value", new { value = value + "%" });

通配符位于字符串 var 本身内部,然后我们在 SQL 中引用该 var。适用于您想要的任何通配符模式。

I would like to add here another possible solution:

var results = cn.Query("SELECT * FROM Table WHERE Column LIKE @value", new { value = value + "%" });

The wildcard is inside the string var itself, and then we reference that var in the SQL. Applies to any wildcard pattern you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文