1 votes

Fonction standard pour échapper les chaînes de caractères en SQL

Je suis en train d'écrire un programme en .NET2.0 et j'ai besoin d'échapper les entrées avant de les utiliser. Malheureusement, le système de méthode de paramètres standard ne fonctionne pas complètement dans le système que j'utilise. En utilisant la classe ODBCCommand, je ne peux pas placer un paramètre ? dans la partie select de l'instruction (ce qui est requis pour le petit tour que je fais) sans obtenir une erreur, donc je dois échapper manuellement les chaînes qui peuvent contenir ou non une apostrophe ('). Des suggestions ?

Édition - Exemple SQL :

Comme je le voudrais :

INSERT INTO TABLE_A (COLUMN_A, COLUMN_B)
SELECT (?, COLUMN_C)
FROM TABLE_B
WHERE COLUMN_D = ?

Comme c'est actuellement :

INSERT INTO TABLE_A (COLUMN_A, COLUMN_B)
SELECT ('VALUE_INPUT_HERE', COLUMN_C)
FROM TABLE_B
WHERE COLUMN_D = ?

Édition : Le pilote de base de données est Sybase ASE, via ODBC

3voto

Patrick McDonald Points 20645
Dim s As String = "Michael O'Flatley"
Dim escapedString as String = s.Replace("'", "''")

3voto

Soni Ali Points 3593

Vous pouvez analyser vos paramètres de chaîne avec cette fonction d'extension

public static string SqlEncode(string str)
{
    if (str == null) return String.Empty;
    return str.Replace("'","''");
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X