Как избежать специальных символов в 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);