2012-02-21 5 views
0

Я кодирую графический интерфейс с использованием WPF и Expression Blend для приложения, которое использует SQLite в качестве базы данных, где хранить свои данные.Как отключить символ двойной кавычки от ввода в текстовом поле?

Я сделал несколько TextBox, где пользователь может вводить данные, которые они хотят добавить или изменить в базе данных. Но если пользователь вводит символ двойных кавычек, будет генерироваться исключение, потому что я использую символ двойных кавычек в запросах для строк.

Так что я ищу способ предотвратить введение пользователем символа двойной кавычки. Является ли это возможным?

Примечание: если применимо, реализация SQLite в C#, которую я использую, - это csharp-sqlite.

+0

Если вы можете получить доступ к содержимому текстового поля до его написания, попробуйте заменить его другим символом, тогда, когда вы его прочитаете, вы можете вернуть двойные кавычки. Или, если вы не возражаете, просто замените кавычки пустой строкой s = s.Replace ("\" "," ") –

ответ

3

Вы должны использовать параметризованные запросы, а не генерировать SQL как строку и выполнять эту строку. Есть много других вещей, кроме двух двойных кавычек, которые пользователи могли бы ввести в текстовое поле, которое нарушило бы ваш запрос (просто посмотрите на SQL-инъекцию, как было прокомментировано ранее), и используя параметры, решает все случаи. Если вы попытаетесь справиться с каждым случаем самостоятельно, вы НЕ УБЕДИТЕСЬ что-то, это только вопрос того, понимает ли кто-то это или нет.

+0

+1 Для лечения болезни, а не симптомов. – cadrell0

+0

Спасибо за ответ, у меня есть никогда не работал с базами данных, и SQL-инъекция была для меня неизвестной концепцией. Я буду больше читать о параметризованных запросах и изменить их. – Armos

Смежные вопросы