2

注意:我使用的是 Microsoft SQL Compact Edition 3.5

我有一个用户表。我将显示名称作为用户输入,我需要查询显示名称与输入匹配的所有用户。

select TOP (1) * from users where display_name like 'Abby Parker'

'Abby parker'是输入

它在正常情况下工作正常。但问题是显示名称可以包含特殊字符

例如,显示名称可以是"Abby Park#er"或只是"%&^%&^%#%" 。在这种情况下,上述查询会失败。我已经尝试过此处指定的解决方案

使用 sql 参数转义 SQL LIKE 语句中的特殊字符

这就是我在这里构建查询的方式

    var command = ceConnection.CreateCommand();
    command.CommandText = string.Format("select TOP (1) * from {0} where {1} like '[{2}]' ", tableName,fieldName, key);
 }
  • {0}=>用户
  • {1}=>显示名称
  • {2}=>模式

提前致谢

4

1 回答 1

2

如发布here,请尝试以下操作:

var command = ceConnection.CreateCommand();
command.CommandText = string.Format("select TOP (1) * from {0} where {1} like @key ", tableName,
                    fieldName);
command.Parameters.AddWithValue("@key", key);
于 2016-04-25T07:24:19.190 回答