Recently I wanted to write a SQL statement for my ASP.NET app like this:
SELECT * FROM tasks WHERE name like ‘?%’
And then add the parameter with the usual statement:
cmd.Parameters.Add(“?name”, MySqlDbType.
VarChar, 100).Value = firstName;
But as you might have guessed, this does not work.
One workaround is to just use Stored Procedures, but this is not always a good choice. The other approach is to just set the pattern when you create the Parameter:
cmd.Parameters.Add(“?name”, MySqlDbType.
VarChar, 100).Value = firstName + ‘%’;
And just have the placeholder in the SQL query like this:
SELECT * FROM tasks WHERE name like ?
2 Kommentare zu “SQL Parameters and the LIKE clause in C#”
Hey Remy
beim lesen deines blogs bin ich auf folgenden beitrag gestossen”SQL
Parameters and the LIKE clause in C#”.
ich habe gerade im bereich von web applications sehr gute erfahrungen
mit Stored Procedures gemacht. damit lässt sich grösstenteils
verhindern, dass via SQL-Injection sensitive daten abgefragt, bzw.
maninpuliert werden.
hilfreich könnten auch Prepared Statements sein (durch verwendung
eines geeigneten frameworks, Ruby on Rails etc.)
was hältst du davon?
Lieber Gruss
Beat
Sali Beat
Wir brauchen MySQL, bis vor kurzem hatten die noch gar keine Stored Procs.
PreparedStatements, wie helfen die gegen SQL Injection?
Ich habe es so verstanden, dass wenn ich command parameters brauche fuer die variablen, dann sollte ich sicher sein. Einfach nie den SQL string zusammenbasteln.
Oder sehe ich das falsch?
Gruss
Remy