C# Query met variabelen.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • jostefa
  • Registratie: Januari 2006
  • Laatst online: 25-09 22:04
Hallo,

Ik heb een query en daar wil ik een variabelen in hebben maar vind nergens hoe het werk (internet, programmeer boek) de query zit er zo uit: string sql = "select player_id from players where playername = 'username' order by playername"; nu wil ik van 'username' een variabelen maken die hij uit een textbox haalt namelijk txtPlayerName.

ik dacht zelf dat hij zo zou moeten werken :
string sql = "select player_id from players where playername = "txtPlayerName.Text.ToString();" order by playername";

maar werkt dus niet.

Hoop dat iemand de exacte notering weet.

alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
had je het al zo geprobeerd:
string sql = "select player_id from players where playername = "+txtPlayerName.Text.ToString()+" order by playername";

oftewel, wat is 'dat werkt niet'? Krijg je compile errors? of?

Acties:
  • 0 Henk 'm!

  • jostefa
  • Registratie: Januari 2006
  • Laatst online: 25-09 22:04
string sql = "select player_id from players where playername = '" + txtPlayerName.Text.ToString() + "' order by playername";

zo werkt hij wel met nog extra ' ' bij thx :)

Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 08:51
Je hebt nu 2 dingen: sting concatenatie (aan elkaar plakken) en de tekst in je where tussen quotes zetten zoals SQL dat graag ziet.

Je moet dus wel zorgen dat beide sets aanwezig zijn en op de goede plaats staan.

Op deze manier zet je echter de input van de gebruiker rechtstreeks in je query. Zou je gebruiker nu als naam iets als
code:
1
blaat'; drop table players;
in vullen, ben je je tabel kwijt.
Je kunt het beter meteen goed aanleren en parameterized queries gebruiken :)

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

  • Razr
  • Registratie: September 2005
  • Niet online
Zoals hierboven al wordt aangegeven is het verstandig om je eens te verdiepen in parameterized queries. Het is overzichtelijker en vooral veilliger. Aangezien je geen risico meer loopt op SQL injection (correct me if i'm wrong).

Voorbeeld in jou context:
C#:
1
2
3
SqlCommand cmd = new SqlCommand("select player_id from players where playername = @username order by playername;", conn);
cmd.Parameters.AddWithValue("@username", txtPlayerName.Text);
//uitvoeren

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:55
der staat in de FAQ zelfs een heel artikel over ....

https://fgheysels.github.io/

Pagina: 1