[ nikolajkg @ 03.02.2011. 17:36 ] @
Imam zadatak da iz baze sa automobilima izvlacim modele po zadatim kriterijumima! Slicno sajti polovniautomobili.com

Napravio sam bazu i formu, sve izgleda ok, medjutim imam mali problem!

U dropdown listi za odabir MARKE mi lista sve marke koje postoje u bazi, tako i za MODELE!

Kako da napravim da mi u listi prikazuje MARKE sve pojedinacno, a u listi za MODEL iskljuci sve modele koje ne pripadaju toj marci???

Nadam se da sam bio jasan... :)

Pozdrav

[Ovu poruku je menjao nikolajkg dana 03.02.2011. u 18:59 GMT+1]
[ AMD guy @ 04.02.2011. 01:22 ] @
Koristi parametre
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
[ Predrag Supurovic @ 04.02.2011. 08:04 ] @
Mislim da ne moraju parametri. Trebalo bi da je dovoljno napraviti relaciju između tabela marke i modeli pa onda listu puniti podacima preko relacije.

Tako bi bilo logično, mada uvek stoji da je .NET okruženje koje je često operisano od logike.
[ pl4stik @ 04.02.2011. 10:08 ] @
Prvi upit mi bio npr.

Code:
SELECT DISTINCT ID FROM  MARKE 


Ovaj drugi bi bio sa parametrom

Code:
SELECT * FROM MODEL WHERE MARKAID<>@MARKAID 


Ako koristish neki od ORM-a npr. Strongly Typed DataSet ili EF za sve ti ne treba ni jedan red code-a.

Citat:
Predrag Supurovic:
Tako bi bilo logično, mada uvek stoji da je .NET okruženje koje je često operisano od logike.


Zasto mislish da je operisano?

[ Predrag Supurovic @ 04.02.2011. 23:25 ] @
Psroto je tako. Imam propiličnog iskustva sa raznim razvojnim platormama i još nisam video nešto tako frustrirajuće kao što je .NET u kombinaciji sa Visual Studio-m. Na prvi pogled sve izgleda bajno ali kad počneš da radiš nešto konkretno onda vidiš kako stvari stvarno stoje.
[ pl4stik @ 06.02.2011. 08:37 ] @
Ne znam sto te tolko naljutio ali ok moze da se desi. Stoji to da ponekad malo pametuje ali je u gro slucajeva to tako da bi se izbegle greske neiskusnih korisnika. U svakom slucaju (da ne idemo u off) ako imash vremena mogo bi da napises nesto od toga sto si primetio i smatrash da nije dobro, cisto bih i ja voleo da znam ...

Pozdrav, pl4stik
[ mmix @ 06.02.2011. 11:22 ] @
Pa kacio je par problema koje je imao, ne mogu da tvrdim 100% ali izgledo kao Delphievac koji je dosao na .NET ti su najgori, znam po sebi . Jbg, ne lezi svakom .NET, a kamoli i VS narocito posle dugog koriscenja neceg drugog. Samo sto ja ne bih rekao da je nelogican vec koristi logiku drugaciju od ostalih razvojnih platformi (definitivno drugaciju od Delphia) sto samo po sebi nije lose. Onog trenutka kad prekines da se boris sa vetrenjacama i prihvatis novu logiku bice ti i lakse da napredujes dalje. Sta ces tek da kazes ako udjes u MVC u kome skoro nista nije logicno i sve je loosely "uvezano" konvencijama i gde je VS prakticno beskoristan (sem model dizajnera i nesto malo intelisensa u kontroleru/modelu), ili kad udjes u WPF i dobijes Form DOM koji menja sam sebe . Uvek postoji vise nacina da na .NETu obavis neki posao, treba samo da nadjes ono sto ti najbolje lezi i sto je najprikladnije problemu.
[ nikolajkg @ 06.02.2011. 11:26 ] @
Hvala vam na trudu i na pomoci!!!!!

Nego imam jos jedno pitanjce...Kada u comboboxu za MARKU selektujem npr.AUDI, on mi u boxu za MODEL izlista i AUDIJEVE modele,ali i sve ostale! Kako da napravim da mi za odredjenu marku nudi da odaberem samo njene modele????

Pozdrav!!
[ dejanet @ 06.02.2011. 11:48 ] @
Citat:
mmx: Sta ces tek da kazes ako udjes u MVC u kome skoro nista nije logicno i sve je loosely "uvezano" konvencijama i gde je VS prakticno beskoristan


Kada okoreli .Net-ovac udje u MVC (klasicnu java ui paradigmu), e ti su najgori..
[ Boris B. @ 06.02.2011. 12:07 ] @
Citat:
nikolajkg
Nego imam jos jedno pitanjce...Kada u comboboxu za MARKU selektujem npr.AUDI, on mi u boxu za MODEL izlista i AUDIJEVE modele,ali i sve ostale! Kako da napravim da mi za odredjenu marku nudi da odaberem samo njene modele????
Pozdrav!!


Kako se ovo "jos jedno pitanje" razlikuje od odog prvog :

Citat:
nikolajkg
Kako da napravim da mi u listi prikazuje MARKE sve pojedinacno, a u listi za MODEL iskljuci sve modele koje ne pripadaju toj marci???


Mozda sam ja lud pa ne razumem, ali odgovor je isti u oba slucaja, uspostavi relaciju izmedju marke i modela auta tako sto ce svaki model imati i ID marke kojoj pripada. Onda filtriraj podatke kako 'oces (client Linq, dataset, EF, L2S...)

Napisi sta konkretno koristis, da li koristis uopste bazu ili XML ili hardkodiras liste, mozda ces tako dobiti bolju pomoc.


A na offtopic, radio sam u Delphiju nekih 10ak godina i pre 2 godine presao na .Net. Ne bih isao nazad na Delphi ni za kakve pare. Jedina zamerka u odnosu na Delphi je sam framework sto nije Win32, ali ne zbog performansi i slicnih gluposti nego prosto zbog komplikacija sa deploymentom. Na primer .Net4 bez ikakvog posebnog razloga zahteva bar XP SP3, dok imamo tonu stranaka koji i dalje srecno furaju Win2k i ne pada im na pamet da apgrejduju... Druga potencijalna zamerka je da se .Net previse brzo razvija da bi developer mogao da prati, ali bolje i to nego k'o Java da imamo jezik koji ne shvata sta je metod koji ne pripada klasi, ili koji zna sta je array of Generic ali ne zna da ga instancira.
[ mmix @ 06.02.2011. 13:10 ] @
Citat:
dejanet: Kada okoreli .Net-ovac udje u MVC (klasicnu java ui paradigmu), e ti su najgori..


Slazem se, al moras razumeti, gadno je kad navuces neku infekciju
[ lan-mi @ 07.02.2011. 07:06 ] @
Citat:

A na offtopic, radio sam u Delphiju nekih 10ak godina i pre 2 godine presao na .Net. Ne bih isao nazad na Delphi ni za kakve pare. Jedina zamerka u odnosu na Delphi je sam framework sto nije Win32, ali ne zbog performansi i slicnih gluposti nego prosto zbog komplikacija sa deploymentom. Na primer .Net4 bez ikakvog posebnog razloga zahteva bar XP SP3, dok imamo tonu stranaka koji i dalje srecno furaju Win2k i ne pada im na pamet da apgrejduju....


Da ne bi dalje isli u offtopic, pitanje za moderatora.
Posto sam dugo u Delphiju, a zadnjih 3 meseca do grla u C# Net-u, da li bi bilo u redu da pokrenem temu, koja ne bi bila C# vs Delphi, nego kako su neke stvari resene u C# za razliku od Delphi-ja.

Borise, zasto se ni za kakve pare ne bi vracao na Delphi?
[ mmix @ 07.02.2011. 08:48 ] @
Citat:
lan-mi: Posto sam dugo u Delphiju, a zadnjih 3 meseca do grla u C# Net-u, da li bi bilo u redu da pokrenem temu, koja ne bi bila C# vs Delphi, nego kako su neke stvari resene u C# za razliku od Delphi-ja.

Bilo bi u redu naravno.
[ Boris B. @ 07.02.2011. 09:03 ] @
Citat:
lan-mi: Borise, zasto se ni za kakve pare ne bi vracao na Delphi?


Ajd napravi temu pa cemo raspravljamo. Samo to "ni za kakve pare" je ipak figure of speech, sigurno postoje pare za koje bi se vratio, ali definitivno Delphi nije vise moj weapon of choice ;)
[ nikolajkg @ 07.02.2011. 10:31 ] @
imam jednu tabelu u kojoj su smesteni podaci (marka, model, godina proizvodnje, tip motora, zapremina, snaga, cena, slika...) koje treba da prikazem na windows formi na labelama odnosno picture box-u!

kriterijume pretrage da selektujem u combobox-u i pretraziti pomocu buttona koji izvrsava zadate upite!

hvala puno svima!!!!
[ escape... @ 07.02.2011. 22:13 ] @
Citat:
nikolajkg: imam jednu tabelu u kojoj su smesteni podaci (marka, model, godina proizvodnje, tip motora, zapremina, snaga, cena, slika...) koje treba da prikazem na windows formi na labelama odnosno picture box-u

Nije uputno da se svi ovi podaci/atributi strpaju u jednu tabelu zbog tzv. anomalija u ažuriranju (a i performansi) ovako modelovane baze podataka, ali ako je ovo neki zadatak za školu i već ti je zadat takav model, onda ok.

Pretpostavimo da su cbMarke i cbModeli objekti klase ComboBox, od kojih prvi služi izlistavanje marki, a drugi za izlistavanje modela.

Ono što najpre treba da uradiš je da za cbMarke dodaš neki event handler koji će da reaguje na promenu izbora marke, npr. SelectedIndexChanged event handler. U Visual Studio-vom dizajneru ovo se radi jednostavno - odeš na properties za cbMarke, nađeš event koji se zove SelectedIndexChanged i upišeš naziv metode (event handler-a) koja će da obrađuje ovaj event. VS će umesto tebe kreirati tu metodu (sa praznim telom), a ti treba da je implementiraš.

Implementaciju započinješ tako što prvo uzmeš izabranu marku iz cbMarke sledećom naredbom:
Code:
string izabranaMarka = (string) cbMarke.SelectedItem;

(Primeti da je neophodno da cbMarke.SelectedItem cast-uješ u string, jer je ComboBox podrazumevano kolekcija objekata tipa object.)

Kada si izvukao vrednost izabrane marke, izvršiš upit:
Code:
 SqlCommand cmd = new SqlCommand("SELECT DISTINCT model FROM automobil WHERE marka ='" + izabranaMarka + "'", konekcija);
...

(Ovo DISTINCT omogućava da se svaki model date marke pojavljuje samo jednom u rezultatima pretrage, jer realno postoji mogućnost da u tabeli ima više automobila jednog istog modela, pa bi se bez DISTINCT taj model ponavljao onoliko puta koliko ima takvih automobila.)

Rezultatima koje dobiješ puniš drugi ComboBox (cbModeli), na isti način na koji si punio cbMarke.



[Ovu poruku je menjao escape... dana 07.02.2011. u 23:24 GMT+1]