Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

c# problem sa sql upitom

[es] :: .NET :: .NET Desktop razvoj :: c# problem sa sql upitom

[ Pregleda: 2273 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Biker
..:: Vrsac ::..

Član broj: 13915
Poruke: 83
91.143.218.*



Profil

icon c# problem sa sql upitom21.04.2008. u 13:34 - pre 194 meseci
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.
Iz supljeg u prazno!!!
 
Odgovor na temu

_prompt

Član broj: 64725
Poruke: 30
*.adsl-4.sezampro.yu.



Profil

icon Re: c# problem sa sql upitom21.04.2008. u 15:16 - pre 194 meseci
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);

 
Odgovor na temu

Biker
..:: Vrsac ::..

Član broj: 13915
Poruke: 83
91.143.218.*



Profil

icon Re: c# problem sa sql upitom21.04.2008. u 15:20 - pre 194 meseci
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!?
Iz supljeg u prazno!!!
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-a-1.sezampro.yu.



+395 Profil

icon Re: c# problem sa sql upitom21.04.2008. u 15:42 - pre 194 meseci
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 


Viva lollapalooza
 
Odgovor na temu

peka
Beograd

Član broj: 3947
Poruke: 124
89.216.119.*



+2 Profil

icon Re: c# problem sa sql upitom21.04.2008. u 16:19 - pre 194 meseci
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.
IRC is just multiplayer notepad.
 
Odgovor na temu

Biker
..:: Vrsac ::..

Član broj: 13915
Poruke: 83
91.143.218.*



Profil

icon Re: c# problem sa sql upitom21.04.2008. u 20:33 - pre 194 meseci
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??
Iz supljeg u prazno!!!
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: c# problem sa sql upitom21.04.2008. u 20:58 - pre 194 meseci
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 .

Viva lollapalooza
 
Odgovor na temu

Biker
..:: Vrsac ::..

Član broj: 13915
Poruke: 83
91.143.218.*



Profil

icon Re: c# problem sa sql upitom22.04.2008. u 01:17 - pre 194 meseci
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???
Iz supljeg u prazno!!!
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: c# problem sa sql upitom22.04.2008. u 09:23 - pre 194 meseci
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 ..


Viva lollapalooza
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: c# problem sa sql upitom

[ Pregleda: 2273 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.