PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   SQL count (https://forum.pcekspert.com/showthread.php?t=200998)

high5 22.10.2010. 00:07

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.:stoopid:

Hazarder 22.10.2010. 08:30

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 + "'";
....


Fadolf 22.10.2010. 09:06

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


high5 22.10.2010. 16:49

Citiraj:

Autor Hazarder (Post 1758784)
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 22.10.2010. 16:50

Citiraj:

Autor Fadolf (Post 1758795)
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.


Sva vremena su GMT +2. Sada je 21:44.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger