У меня есть текстовое поле и его разбиение на мой sql-оператор. Как избежать всех символов в этом поле? Я использую sqlite с http://sqlite.phxsoftware.com/ в С#
SQL-побег с sqlite в С#
Ответ 1
Вы должны использовать параметр, как в:
SQLiteCommand cmd = _connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM MyTable WHERE MyColumn = @parameter";
cmd.Parameters.Add( new SQLiteParameter( "@parameter", textfield ) );
SQLiteDataReader reader = cmd.ExecuteReader();
Использование параметризованного SQL избавит от всех входных значений и поможет защитить вас от атак SQL-инъекций.
Ответ 2
Вы также можете заменить все разделители одиночных кавычек сомнительными одиночными кавычками (а не ").
sql = sql.Replace("'","''");