テキスト フィールドがあり、SQL ステートメントが壊れています。そのフィールドのすべての文字をエスケープするにはどうすればよいですか? C#でhttp://sqlite.phxsoftware.com/でsqliteを使用しています
user34537
質問する
13587 次
2 に答える
33
次のようにパラメーターを使用する必要があります。
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 インジェクション攻撃から保護されます。
于 2009-03-11T03:43:44.400 に答える
1
すべての一重引用符の区切り文字を疑わしい一重引用符( "ではない)に置き換えることもできます。
sql = sql.Replace("'","''");
于 2009-03-11T03:54:42.893 に答える