Forumi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 22.10.2010., 00:07   #1
high5
Registered User
 
Datum registracije: Aug 2009
Lokacija: N/A
Postovi: 46
SQL count

Pozz ljudi,

Npr, hoću da prebrojim sve one koji se zovu "dario"(prepostavimo da se u bazi nalazi jedan "dario"):

string selectString = ("SELECT count(username) FROM tabela WHERE username= ' " + textBox1.Text + " '");
SqlCommand mySqlCommand = new SqlCommand(selectString,mySqlConnection);
int count = (int)mySqlCommand.ExecuteScalar();

Kao rezultat mi vraća 0. Međutim kad postavim ovo vraća mi 1 kao sto i je.

string selectString = ("SELECT count(username) FROM tabela WHERE username='dario');
SqlCommand mySqlCommand = new SqlCommand(selectString,mySqlConnection);
int count = (int)mySqlCommand.ExecuteScalar();

Zasto u prvom primjeru ne vraća 1.
high5 je offline   Reply With Quote
Staro 22.10.2010., 08:30   #2
Hazarder
Registered User
Moj komp
 
Hazarder's Avatar
 
Datum registracije: Jul 2009
Lokacija: Sisak
Postovi: 27
Imaš malo viška razmaka kada spajaš string iz textBoxa s jednostrukim navodnicima. U tvom slučaju je SELECT tražio string ' dario ', a ne 'dario'.

Probaj ovako:
Code:
....
string selectString = "SELECT count(username) FROM tabela WHERE username = '" + textBox1.Text + "'"; 
....
Hazarder je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 22.10.2010., 09:06   #3
Fadolf
Premium
 
Fadolf's Avatar
 
Datum registracije: Dec 2007
Lokacija: Zagabria
Postovi: 490
Samo bih ti preporučio da koristiš parametriziranje kako bi spriječio SQL injection...

Dodaj System.Data namespace prvo...

Code:
string selectString = ("SELECT count(username) FROM tabela WHERE username= @username"); 
SqlCommand mySqlCommand = new SqlCommand(selectString,mySqlConnection); 
mySqlCommand.Parameters.Add("@username", SqlDbType.String).Value = textbox1.Text;
int count = (int)mySqlCommand.ExecuteScalar();
Fadolf je offline   Reply With Quote
Staro 22.10.2010., 16:49   #4
high5
Registered User
 
Datum registracije: Aug 2009
Lokacija: N/A
Postovi: 46
Citiraj:
Autor Hazarder Pregled postova
Imaš malo viška razmaka kada spajaš string iz textBoxa s jednostrukim navodnicima. U tvom slučaju je SELECT tražio string ' dario ', a ne 'dario'.

Probaj ovako:
Code:
....
string selectString = "SELECT count(username) FROM tabela WHERE username = '" + textBox1.Text + "'"; 
....
To je to.

Hvala.
high5 je offline   Reply With Quote
Staro 22.10.2010., 16:50   #5
high5
Registered User
 
Datum registracije: Aug 2009
Lokacija: N/A
Postovi: 46
Citiraj:
Autor Fadolf Pregled postova
Samo bih ti preporučio da koristiš parametriziranje kako bi spriječio SQL injection...

Dodaj System.Data namespace prvo...

Code:
string selectString = ("SELECT count(username) FROM tabela WHERE username= @username"); 
SqlCommand mySqlCommand = new SqlCommand(selectString,mySqlConnection); 
mySqlCommand.Parameters.Add("@username", SqlDbType.String).Value = textbox1.Text;
int count = (int)mySqlCommand.ExecuteScalar();
Uradio sam i to. Hvala na savjetu.
high5 je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na