Laden...

Suche ausführen mit Parameter.Add

Erstellt von Paulo vor 16 Jahren Letzter Beitrag vor 16 Jahren 923 Views
P
Paulo Themenstarter:in
172 Beiträge seit 2005
vor 16 Jahren
Suche ausführen mit Parameter.Add

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!

243 Beiträge seit 2005
vor 16 Jahren

Soweit ich weiß, muss man bei AddWithValue Parameter ohne @ angeben.

ldr

P
Paulo Themenstarter:in
172 Beiträge seit 2005
vor 16 Jahren

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);

L
770 Beiträge seit 2006
vor 16 Jahren

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

P
Paulo Themenstarter:in
172 Beiträge seit 2005
vor 16 Jahren

.. stimmt. Danke!