J'ai un champ de texte et sa rupture mon instruction sql. Comment puis-je échapper à tous les chars dans ce domaine? J'utilise sqlite avec http://sqlite.phxsoftware.com/ en C#Escape SQL avec sqlite en C#
Répondre
Vous devez utiliser un paramètre comme dans:
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();
L'utilisation d'un SQL paramétrisée échappera toutes les valeurs d'entrée et de vous protéger des attaques par injection SQL.
Vous pouvez également remplacer tous les délimiteurs guillemets simples avec doute des guillemets simples (non «).
sql = sql.Replace("'","''");
Cette méthode ne re recommandé, Cela peut conduire à des bugs étranges. – Palani
Pas nécessairement. Si vous construisez votre SQL et faites le Remplacer la dernière étape, tout devrait être bon. A travaillé pendant des années sans problèmes. J'utilise maintenant les blocs d'application, donc cela n'a pas d'importance. :) – klkitchens
cette méthode est bonne si vous avez besoin de créer un coffre-fort SQL à vider dans un fichier texte ou autre. –
- 1. Escape SQL « »
- 2. sqlite transactionnel? en C#
- 3. Backslash SelectSingleNode Escape
- 4. Transactions API SQLite 3 C
- 5. Création de requêtes SQL pour SQLite avec les primitives MFC
- 6. Problème d'encodage avec SQLite et WinForms 2.0 C#
- 7. PHP: Escape Quotes SEULEMENT en dehors des balises HTML (Regex)
- 8. La colonne LINQ to SQL a un mot-clé comme nom de colonne, comment citer/escape
- 9. Exception SQLite: SQLite Occupé
- 10. Chaîne d'entrée PHP & MySQL Escape Problème
- 11. Insertion d'enregistrements avec SQLite
- 12. SQLite en Python 2.2.3
- 13. sqlite, mono, plateforme croisée C#
- 14. Création d'un déclencheur SQL conditionnel dans SQLite
- 15. Crypter la base de données SQLite en C#
- 16. Localisation de l'iPhone avec sqlite?
- 17. Exportation de SQLite vers SQL Server
- 18. Sqlite en remplacement de fopen()?
- 19. Récupère la requête SQL d'origine de l'instruction préparée dans SQLite
- 20. Utilisation de SQLITE avec VB6
- 21. Comment connecter SQLite avec Java?
- 22. Colonnes d'accès SQLite C++ par nom
- 23. Sqlite C fonction définie par l'utilisateur
- 24. Insérer dans SQLite avec des variables en utilisant javascript
- 25. Type DATETIME d'Objective-C et sqlite
- 26. Appel SQL avec une clause de calcul en C#
- 27. Sélection SQL simple en C#?
- 28. Tableaux SQL SELECT en C#?
- 29. Insérer BLOB vide dans SQLite DB en utilisant ODBC et C++ Net
- 30. adaptateur ne se charge pas quoi que ce soit avec SQLite C#
Que dois-je faire si je params plusieurs? Dois-je écrire cmd.CommandText = » insérer ... @parameter ... @parameter "; cmd.Parameters.Add (...); cmd.Parameters.Add (...);? –
Oui, il devrait aussi y avoir une méthode AddRange disponible où vous pouvez passer un tableau de . params qui correspondent aux params dans la statemenet sql –
vous pouvez appeler Parameters.Add plusieurs fois comme vous avez demandé ou utiliser le Parameters.AddRange qui accepte un tableau de paramètres – bstoney