verwendetes Datenbanksystem: SQL Server 2005
Hi,
folgendes klappt ohne Probleme:
cmd.CommandText = "SELECT Title, catID, URL, Developer, Release, Rating, UserRating FROM gf_game WHERE (Title LIKE '%"+kW+"%') ORDER BY catID, Title";
Ist jedoch bzgl. SQL Injection kritisch. Die Abfrage selbst ist für eine Suche in der Datenbank nach dem Keyword (kW).
Folgendes liefert jedoch keine Resultate mehr zurück:
cmd.CommandText = "SELECT Title, catID, URL, Developer, Release, Rating, UserRating FROM gf_game WHERE (Title LIKE '%@kw%') ORDER BY catID, Title";
cmd.Parameters.AddWithValue("@kw", kW);
Weiß jemand warum? Danke!
Soweit ich weiß, muss man bei AddWithValue Parameter ohne @ angeben.
ldr
Original von ldr
Soweit ich weiß, muss man bei AddWithValue Parameter ohne @ angeben.ldr
Hat nichts geholfen..
Habs nun mal so gemacht, ist aber nicht grad eine schöne Lösung 😮
kW = kW.Insert(kW.Length, "%");
kW = kW.Insert(0, "%");
kW = kW.Replace(" ", "%");
cmd.Connection = cn;
cmd.CommandText = "SELECT Title, catID, URL, Developer, Release, Rating, UserRating FROM gf_game WHERE (Title LIKE @kw) ORDER BY catID, Title";
cmd.Parameters.AddWithValue("@kw", kW);
Hy,
hast du die die abfragen mal angeschaut? ich denke wenn man mit parameter arbeiten, muss man auf die ' achten, denn normal lautet es ja: "WHERE spalte=@spalte" und nicht mit '.
folgendens sollte/könnte klappen:
cmd.CommandText = "SELECT Title, catID, URL, Developer, Release, Rating, UserRating FROM gf_game WHERE (Title LIKE @kw) ORDER BY catID, Title";
cmd.Parameters.AddWithValue("@kw","%" + kW + "%");
lg
€dit:
darauf hättest du eigentlich auch selbst kommen können, denn in deiner 2ten antwort steht ja im endeffekt in kw "%Value% und übergebst den auch ohne ' Zeichen.
lg Lion