Как избежать специальных символов в Microsoft SQL CE

Примечание: я использую Microsoft SQL Compact Edition 3.5

У меня есть таблица пользователей. У меня есть отображаемое имя в качестве пользовательского ввода, и мне нужно запросить всех пользователей, чье отображаемое имя соответствует вводу.

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

Вот 'Abby parker' это вход

в нормальных случаях работает нормально. Но проблема в том, что отображаемое имя может содержать специальные символы

Например, отображаемое имя может быть "Abby Park#er" или просто "%&^%&^%#%".В вышеупомянутом запросе отказывает в таких случаях. Я уже попробовал решение, указанное здесь

Экранирование специальных символов в операторе SQL LIKE с использованием параметров sql

вот как я строю запрос здесь

    var command = ceConnection.CreateCommand();
    command.CommandText = string.Format("select TOP (1) * from {0} where {1} like '[{2}]' ", tableName,fieldName, key);
 }
  • {0}=> пользователи
  • {1} => display_name
  • {2} => паттерн

заранее спасибо

1 ответ

Решение

Как размещено здесь, пожалуйста, попробуйте следующее:

var command = ceConnection.CreateCommand();
command.CommandText = string.Format("select TOP (1) * from {0} where {1} like @key ", tableName,
                    fieldName);
command.Parameters.AddWithValue("@key", key);
Другие вопросы по тегам