[ Biker @ 21.04.2008. 13:34 ] @
Interesuje me dali mogu da deo sql upita mogu da ubacim u string promenljivu i da posle iscitam u upitu???

znaci ovako
Code:

string user;

user= "' [red]and[/red] username'" + txtUser.Text ;

i onda u sql upitu.

Code:

command.CommandText = "SELECT username, city FROM rm_users WHERE '" + user + "'";


Isprobao sam svakakve kombinacije ali samo sa onim red daje rezultat ali takav kao da nista nije upisano u txtUser, a jeste upisano.

Mislim da je jasno sta mi treba, mada tu i nije kraj jer mi treba vise ovakvih promenljivih, kao sto su.
Code:

string pass;
string city;


E sad mozda postoji bolje resenje ovoga, koje ja ne znam i ovo sam sam smislio!
Ako neko zna bolje resenje pretrage baze u koju trebaju biti poslati podaci iz jednog ili vise text boxa sa forme.
A da vraca rezultat. Znaci ako je neki text box prazan da njega ne poredi sa podacima u tabeli.

Nadam se da sam objasnio kako treba.
[ _prompt @ 21.04.2008. 15:16 ] @
Upit ti nije dobar, ne trebaju ti jednostruki navodici i nemas =.
Bolje je da koristis parametre u upitu kad god mozes i nemas cimanja sa pravljenjem sql upita.

Code:

SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT username, city FROM rm_users WHERE username = @User";
command.CommandType = CommandType.Text;

SqlParameter user = new SqlParameter();
user.ParameterName = "@User";
user.DbType = DbType.String;
user.Value = txtUser.Text;

command.Parameters.Add(user);

[ Biker @ 21.04.2008. 15:20 ] @
aj sad cu to da isprobam mada mi tu nista nije jasno ali sad cu da provalim.

Nego jel sa ovim moze da se salje upit bez obzira da li postoje podaci u text oxovima??

To mi je najvise zadavalo muke inace se nebi zamarao ovime.
Meni je sql upit radio kako treba samo je fora, a napisao sam u prvom postu da se sad ne ponavljam.

Koliko vidim ovo sto si mi poslao radi isto to sto sam ja vec znao da uradim.
Salje iz promenljive na upit parametar. Ali sta ako je taj parametar "" onda ce da trazi u bazi da li je polje prazno?!?!?
Sto meni netrabe, znaci kad je textbox prazan netreba da pita bazu za to polje nista.

Znaci u zavisnosti od sadrzaja textboxova (ima ih vise) toliko parametara treba da se salje upitu.
TJ ja sam skontao da promenljiva trehba da sadrzi (deo upita kao sto je "and username=" i drugi deo sta je u textboxu txtUser.text)
a ako je prazno onda da promenljiva bude "". I naravno to posle da dam kao parametar sql upitu.

Pa bi sa time sql upit trebao da ima jedan ili vise kriterijuma pretrage. Sto je po meni bitno naglasiti!!!

Napomena:
Ova komanda

SqlParameter neradi kod mene!?
[ deerbeer @ 21.04.2008. 15:42 ] @
Citat:

@Biker
Koliko vidim ovo sto si mi poslao radi isto to sto sam ja vec znao da uradim.
Salje iz promenljive na upit parametar. Ali sta ako je taj parametar "" onda ce da trazi u bazi da li je polje prazno?!?!?
Sto meni netrabe, znaci kad je textbox prazan netreba da pita bazu za to polje nista.


U tom slucaju trebas pre generisanja upita da proveris da li su ta polja prazna ..
pa onda da napravis query sa poljima koja nisu prazna
Code:

string strQuery = "SELECT username, city FROM rm_users " ; 
if (txtUser.Text != String.Empty) 
  strQuery + = "WHERE User = '" + txtUser .Text+ "'";

if (txtCity.Text != String.Empty) 
   strQuery + = " AND City = '" + txtCity.Text + "'"; 
.. 
//i tako dalje za svako polje 
//Ako su sva polja prazna upit ti vraca sve redove iz tabele .... 
// i moras da proveris da  li postoji vrednost za polje gde je WHERE uslov 
jer ces dobiti syntax error od SQL-a ako polje "User ne postoji a polje "City" postoji 

[ peka @ 21.04.2008. 16:19 ] @
U ovakvom pristupu je problem ako je prvo polje prazno, onda u upitu nemamo WHERE. Ja to rjesavam ovako:

Code:
string strQuery = "SELECT username, city FROM rm_users WHERE 1=1 " ; 
if (txtUser.Text != String.Empty) 
  strQuery + = " AND User = '" + txtUser .Text+ "'";

if (txtCity.Text != String.Empty) 
   strQuery + = " AND City = '" + txtCity.Text + "'"; 
.. 
//i tako dalje za svako polje


Mislim da ovako nesto nema uticaja na performanse upita, a samo sastavljanje upita je dosta lakse.
[ Biker @ 21.04.2008. 20:33 ] @
E da ne pravim novu temu.

Znamm da upis u tabelu access iz c# ide:

Code:

int pozicija = 0;
string ime = "rm_users";

this.txtUsername.Text = MojDataSet.Tables[ime].Rows[pozicija].ItemArray[0].ToString();


Gde je pozicija redni broj polja i ime je ime tabele koja se zove rm_users.

kako bi ovo uradio za mysql i gde ima neko uputstvo za c#+mySQL??
[ deerbeer @ 21.04.2008. 20:58 ] @
Citat:

@Biker
Znamm da upis u tabelu access iz c# ide:
Code:

int pozicija = 0;
string ime = "rm_users";
this.txtUsername.Text = MojDataSet.Tables[ime].Rows[pozicija].ItemArray[0].ToString();

Gde je pozicija redni broj polja i ime je ime tabele koja se zove rm_users.


1. Ovaj kod ne radi nikakav upis u tabelu (tj.bazu) vec jednostavno prikazuje prvu kolonu (polje) n-tog reda iz tvoje tabele u textbox .
2. Pozicija nije redni broj polja vec broj reda u tvom DataTable-u ..
3. Treca stvar : Ovaj kod treba da ti radi i sa MySQL-om .
[ Biker @ 22.04.2008. 01:17 ] @
hehe

Sve sto si ti rekao sam ja hteo da kazem ali sam se skroz pogubio :D

Pazi meni izbaci gresku

Object reference not set to an instance of an object.

na ovu liniju koda
Code:

  this.txtUsername.Text = MojDataSet.Tables[ime].Rows[pozicija].ItemArray[0].ToString();


Nemam pojma sta je to???
[ deerbeer @ 22.04.2008. 09:23 ] @
Citat:

Object reference not set to an instance of an object.

Znaci da objekat sa kojim pozivas funkciju ili neki property nije instanciran .
Code:

MojDataSet.Tables[ime].Rows[pozicija].ItemArray[0].ToString();


Sto ce biti u tvom slucaju da je :
1. MojDataSet = null
2. MojDataSet.Tables[ime] = null ;
3. MojDataSet.Tables[ime].Rows[pozicija] = null ;
4. MojDataSet.Tables[ime].Rows[pozicija].ItemArray[0] = null ;

Postavi breakpoint u tvom kodu na ovu liniju i pusti debug da vidis sta je null ..