Ho un campo di testo e il suo rompere la mia istruzione sql. Come faccio a sfuggire a tutti i caratteri in quel campo? Sto usando SQLite con http://sqlite.phxsoftware.com/ in C#SQL escape con sqlite in C#
risposta
Si deve usare un parametro come in:
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();
Utilizzando uno SQL parametrizzato sfuggirà tutti i valori di ingresso e di contribuire a proteggere da attacchi di SQL injection.
È anche possibile sostituire tutti i delimitatori singoli citazione con il dubbio apici (non ").
sql = sql.Replace("'","''");
Questo metodo non è ri lodato, può portare a strani bug. – Palani
Non necessariamente. Se costruisci il tuo SQL e fai sostituire l'ultimo passaggio, tutto dovrebbe essere buono. Ha lavorato per anni senza problemi. Ora utilizzo i blocchi delle applicazioni, quindi non importa. :) – klkitchens
questo metodo è buono se è necessario creare un SQL sicuro per eseguire il dump su un file di testo o altro. –
- 1. SQL Escape ''
- 2. SQLite Android LIKE escape jolly
- 3. Stringa di escape reale Android in sqlite
- 4. Escape caratteri speciali in SQL INSERT INTO tramite C#
- 5. python e sqlite - input di escape
- 6. Escape e commerciale in PL/SQL Developer
- 7. query di escape SQL + codeigniter
- 8. Come posso accedere a SQLite con C#?
- 9. Aggiunta di parametri in SQLite con C#
- 10. SQLite chiuso SQL exception
- 11. SQLite Partecipa a Windows 8 Metro C# con sqlite-net
- 12. SQLite in un'applicazione java con multithreading
- 13. Unescape JavaScript escape() utilizzando C#
- 14. Oracle SQL carattere di escape (per un '&')
- 15. È possibile convertire a livello di codice database SQLite in istruzioni SQL in C/C++?
- 16. File system filename escape? C#
- 17. Output JSTL con escape?
- 18. Escape carattere di virgoletta singola da utilizzare in una query SQLite
- 19. SQLite Alternative per C++
- 20. \ c sequenza di escape elencata nell'uomo ma sconosciuta in C
- 21. Esportazione batch del database SQL in CSV con citazioni di escape
- 22. SQLite con Entity Framework
- 23. Regole per caratteri letterali stringa C++ escape
- 24. SQLite Inserimento blob C++
- 25. L'output serializzato JSON ha formattazione escape C#
- 26. Ottieni la query SQL originale dall'istruzione preparata in SQLite
- 27. Utilizzando Pragma-s di SQLite in C#
- 28. SQL Server Compact 4.0 vs. SQLite
- 29. Ignora sequenze di escape Regex C#
- 30. booleans in rails con sqlite
cosa devo fare se ho più params? Scrivo cmd.CommandText =" INSERT ... @parameter ... @parameter "; cmd.Parameters.Add (...); cmd.Parameters.Add (...);? –
Sì, dovrebbe essere disponibile anche un metodo AddRange in cui è possibile passare una matrice di params che corrispondono ai parametri nel set di dati sql –
Puoi chiamare Parametri.Aggiungere più volte come richiesto o usare Parameters.AddRange che accetta un array di parametri – bstoney