Univerzitet u Novom Sadu Tehnički fakultet „Mihajlo Pupin“ Zrenjanin Predmet: Softversko inženjerstvo 1 Seminarski rad Aplikacija – Fudbalska utakmica Profesor: Student: Prof. dr Dragica Radosav Siniša Mihajlović IT 51/13 Smer: Informacione tehnologije
144
Embed
Predmetni cilj - University of Novi Sad · Web view2.1 C# programski jezik C# (C Sharp) programski jezik je jedan od mlađih programskih jezika nastao 2002. godine kao sastavni deo
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Univerzitet u Novom SaduTehnički fakultet „Mihajlo Pupin“
Zrenjanin
Predmet: Softversko inženjerstvo 1
Seminarski rad
Aplikacija – Fudbalska utakmica
Profesor: Student:Prof. dr Dragica Radosav Siniša Mihajlović IT 51/13
5.1 Kod klase Fudbaler..............................................................................................................295.2 Kod klase FudbalerXML.....................................................................................................345.3 Kod klase Klub....................................................................................................................375.4 Kod klase Liga.....................................................................................................................425.5. Kod klase Reprezentacija...................................................................................................455.6 Kod klase Takmicenje.........................................................................................................495.7 Kod klase Trener..................................................................................................................535.8 Kod klase TrenerXML.........................................................................................................555.9 Kod klase Utakmica.............................................................................................................576. Kod forme frmFudbaler.........................................................................................................646.1 Kod forme frmKlub.............................................................................................................716.2 Kod forme frmLiga..............................................................................................................786.3 Kod forme frmReprezentacija.............................................................................................836.4 Kod forme frmTakmicenje..................................................................................................896.5 Kod forme frmTrener..........................................................................................................956.6 Kod forme frmUtakmice....................................................................................................1016.7 Kod forme frmFudbaleriKlub............................................................................................108
6.8 Kod forme frmFudbaleriReprezentacija............................................................................1096.9 Kod forme frmKluboviLiga...............................................................................................1107. Kod forme frmKluboviTreneri............................................................................................1117.1 Kod forme frmReprezentacijaTrener.................................................................................1127.2 Kod forme frmUtakmiceDomacin.....................................................................................1137.3 Kod forme frmUtakmiceGost............................................................................................1147.4 Kod forme frmUtakmiceLiga............................................................................................1157.5 Kod forme Form1..............................................................................................................116
Predmetni cilj
Оsnоvni cilј prеdmеtа је sintеzа stеčеnih znаnjа iz užе stručnih prеdmеtа infоrmаtikе, usmеrеnа nа primеnu sаvrеmеnih аlаtа zа rаzvој sоftvеrskih prоizvоdа. Pоsеbаn cilј prеdmеtа је оspоsоblјаvаnjе studеnаtа zа sаmоstаlаn i timski rаd pri izrаdi sоftvеrskih prоizvоdа. Zаdаci kоје оvај prеdmеt trеbа dа оstvаri је оvlаdаvаnjе tеоriјskim, mеtоdоlоškim, i prаktičnim znаnjimа rаzvоја sоftvеrskоg prоizvоdа.
Cilj seminarskog rada
Cilj seminarskog rada je omogućiti unos fudbalera, fudbalskih klubova, reprezentacija, trenera, fudbalskih liga, fudbalskih takmičenja, i što je najvažnije od svega fudbalskih utakmica.
Na ovaj način se može videti kojem fudbalskom klubu i reprezentaciji pripada određeni fudbaler. Kojoj fudbalskoj ligi pripada određeni klub, koji trener trenira određeni fudbalski klub ili reprezentaciju. Koje takmičenje igra određeni klubovi, i koju utakmicu igraju određeni klubovi u određenoj ligi. Ovo je sve prikazano u zasebnim izveštajima
1. Uvod
Aplikacija se sastoji od skupa tabela koje su međusobno povezane u jednu bazu podataka. Svaka tabela ima svoj naziv, i podatke koji su određenog tipa koji čine datu tabelu koja se nalazi u bazi podataka. Tabele koje se nalaze u bazi su: T_FUDBALER, T_KLUB, T_KLUB_ TAKMICENJE, T_LIGA, T_REPREZENTACIJA, T_TAKMICENJE, T_TRENER, T_UTAKMICA.
Podaci tabele T_FUDBALER su: FudbalerId, Ime, Prezime, Broj, Pozicija, Nacionalnost, KlubId, ReprezentacijaId. Podatak FudbalerId je primarni ključ tabele T_FUDBALER i ima vrednost IDENTITY, što znači da se vrednost FudbalerId povećava za jedan za svakog novog unetog fudbalera. Podaci Ime, Prezime, Broj, Pozicija i Nacionalnost unosimo sami, dok podatak KlubId i ReprezentacijaId su strani ključevi u tabeli T_FUDBALER. Tabela T_FUDBALER je povezana sa tabelom T_KLUB i tabelom T_REPREZENTACIJA vezom jedan prema više. Ove veze nam omogućavaju da kada dodajemo novog fudbalera, da možemo iz comboBoxova Klub i Reprezentacija, da dodelimo odgovarajući Klub i Reprezentaciju odgovarajućem fudbaleru. Da bi to uradili, pre toga moraju biti uneti podaci u tabeli T_KLUB i tabeli T_REPREZENTACIJA. Podatak Ime predstavlja ime fudbalera, podatak Prezime prezime fudbalera, podatak Broj broj fudbalera, podatak Pozicija poziciju fudbalera i podatak Nacionalnost nacionalnost fudbalera.
Postoje izveštaji koji nam prikazuju tačne podatke za svakog fudbalera, tj. koji fudbaler igra za koji fudbalski klub, a drugi izveštaj je taj koji nam prikazuje za koju fudbalsku reprezentaciju nastupa određeni fudbaler.
Podaci tabele T_KLUB su: KlubId, Naziv, Stadion, Kapacitet, GodinaOsnivanja, LigaId, TrenerId. Podatak KlubId je primarni ključ tabele T_KLUB i ima vrednost IDENTITY, što znači da se vrednost KlubId povećava za jedan za svaki novi uneti klub. Podaci Naziv, Stadion, Kapacitet i GodinaOsnivanja unosimo sami, dok podatak LigaId i TrenerId su strani ključevi u tabeli T_KLUB. Tabela T_KLUB je povezana sa tabelom T_LIGA i tabelom T_REPREZENTACIJA vezom jedan prema više. Ove veze nam omogućavaju da kada dodajemo novi klub, da možemo iz comboBoxova Liga i Trener, da dodelimo odgovarajuću Ligu i Trenera odgovarajućem Klubu. Da bi to uradili, pre toga moraju biti uneti podaci u tabeli T_LIGA i tabeli T_TRENER. Podatak Naziv predstavlja naziv kluba, podatak Stadion predstavlja stadion kluba, podatak Kapacitet predstavlja kapacitet kluba i podatak GodinaOsnivanja predstavlja godinu osnivanja kluba.
Postoje izveštaji koji nam prikazuju koji trener trenira određeni fudbalski klub, a drugi izveštaj prikazuje u kojoj fudbalskoj ligi se nalazi određeni fudbalski klub.
Podaci tabele T_LIGA su: LigaId, Naziv, Rang, BrojKlubova. Podatak LigaId je primarni ključ tabele T_LIGA i ima vrednost IDENTITY, što znači da se vrednost LigaId povećava za jedan za svaku novu unetu ligu. Podaci Naziv, Rang i BrojKlubova unosimo sami. Tabela T_LIGA je povezana sa T_KLUB vezom jedan prema više i time imamo mogućnost da se u formi Kluba prikaže comboBox Lige. Da bi dodali klub prvo moramo uneti podatke u tabeli T_LIGA, zato što tabela T_KLUB učitava podatke iz tabele T_LIGA. Podatak Naziv predstavlja
naziv lige, podatak Rang predstavlja rang lige i podatak BrojKlubova predstavlja broj klubova koji se nalazi u ligi.
Podaci tabele T_REPREZENTACIJA su: ReprezentacijaId, Naziv, Ime, Prezime, BrojnoStanje, TrenerId. ReprezentacijaId je primarni ključ tabele T_REPREZENTACIJA i ima vrednost IDENTITIY, što znači da se vrednost ReprezentacijaId povećava za jedan za svaku novu unetu reprezentaciju. Podaci Naziv, Ime, Prezime i BrojnoStanje unosimo sami, dok podatak TrenerId predstavlja strani ključ u tabeli T_REPREZENTACIJA. Tabela T_REPREZENTACIJA je povezana sa tabelom T_TRENER vezom jedan prema više. Ova veza nam omogućava da kada dodajemo novu reprezentaciju, da možemo iz comboBoxa Trener, da dodelimo odgovarajućeg Trenera odgovarajućoj reprezentaciji. Da bi to uradili, pre toga moraju biti uneti podaci u tabeli T_TRENER. Podatak Naziv predstavlja naziv reprezentacije, podatak Ime predstavlja ime kapitena reprezentacije, podatak Prezime predstavlja prezime kapitena reprezentacije i podatak BrojnoStanje predstavlja brojno stanje reprezentacije, tj. koliko igrača nastupa za reprezentaciju sve ukupno.
Postoji izveštaj koji nam prikazuje koji trener trenira određenu fudbalsku reprezentaciju.
Podaci tabele T_TAKMICENJE su: TakmicenjeId, Naziv i Datum. Podatak TakmicenjeId je primarni ključ tabele T_TAKMICENJE i ima vrednost IDENTITY, što znači da se vrednost TakmicenjeId povećava za jedan za svako novo uneto takmičenje. Podaci Naziv i Datum se unosi sami. Tabela T_TAKMICENJE je povezano sa tabelom T_KLUB vezom više prema više preko tabele T_KLUB_TAKMICENJE u kojoj se nalaze primarni ključevi tabela T_TAKMICENJE i T_KLUB koji su: KlubId i TakmicenjeId koji su u stvari strani ključevi. Ovo nam omogućava da se u formi Takmičenje nalazi checkedListBox koji nam omogućava prikaz klubova koji se prijavljivaju za određeno takmičenje. Da bi se prikazali Klubovi u checkedListBoxu moramo imati unete klubove u tabeli T_KLUB. Podatak Naziv predstavlja naziv takmičenja, a podatak Datum predstavlja datum prijave određenog kluba za određeno takmičenje.
Podaci tabele T_TRENER su: TrenerId, Ime, Prezime, Nacionalnost, Vrsta. Podatak TrenerId je primarni ključ tabele T_TRENER i ima vrednost IDENTITY, što znači da se vrednost TrenerId povećava za jedan za svakog novog unetog trenera. Podaci Ime, Prezime i Nacionalnost unosimo sami. Tabela T_TRENER je povezana sa tabelom T_KLUB i T_REPREZENTACIJA vezom jedan prema više. Ove veze nam omogućavaju da se u tabelama T_REPREZENTACIJA i T_KLUB prikaže comboBox Trener, kada dodajemo novu reprezentaciju ili klub, a da bi ih dodali prvo moramo uneti podatke u tabeli T_TRENER pa onda u tabelama T_REPREZENTACIJA i T_KLUB. Podatak Ime predstavlja ime trenera, podatak prezime predstavlja prezime trenera, podatak Nacionalnost predstavlja nacionalnost trenera i podatak Vrsta predstavlja vrstu treneru.
Podaci tabele T_UTAKMICA su: UtakmicaId, Datum, Stadion, Prognoza, KlubId1, KlubId2, LigaId. Podatak UtakmicaId je primarni ključ koji tabele T_UTAKMICA i ima vrednost IDENTITY, što znači da se vrednost Utakmicaid povećava za jedan za svaku novu unetu utakmicu. Podaci Datum, Stadion i Prognoza unosimo sami, dok su KlubId1, KlubId2 i LigaId strani ključevi. Tabela T_UTAKMICA je povezana sa tabelama T_UTAKMICA i T_LIGA vezom jedan prema više. Ove veze nam omogućavaju da kada unosimo novu utakmicu da možemo da odaberemo odgovarajući klub i njegovog protivnika iz comboBoxova Klub,
odgovarajuću Ligu iz comboBoxa Liga za odgovarajuću utakmicu. KlubId1 predstavlja jedan fudbalski klub, a KlubId2 predstavlja drugi fudbalski klub. Podatak Datum predstavlja podatak održavanja fudbalske utakmice, podatak Stadion predstavlja mesto održavanje fudbalske utakmice i podatak Prognoza predstavlja vremensku prognozu.
Postoje izveštaji koji nam prikazuju utakmice domaćina, utakmice gosta, i utakmice koje se igraju u određenoj fudbalskoj ligi.
2. Korišćene tehnologije
Korišćene tehnologije predstavljaju koje smo sve tehnologije koristili prilikom izrade ove Windows aplikacije. Postoji veliki broj tehnologija koji je potreban za izradu aplikacije.
2.1 C# programski jezik
C# (C Sharp) programski jezik je jedan od mlađih programskih jezika nastao 2002. godine kao sastavni deo MS .NET Framework-a 1.0. C# je objektno orijentisani programski jezik namenjen razvoju aplikacija na .NET Framework platformi. Pošto je objekno orijentisan programski jezik, prvenstveno je sagrađen od klasa koje čine skupove objekata koji imaju zajedničku strukturu i ponašanje. Takođe kao i mnogi objektno orijentisani programski jezici, sadrži sposobnost ekapsulacije, pisanje metoda, nasleđivanje između klasa i visoke performanse tokom kompajliranja. Iz razloga enkapsulacije postoji obrazac kojim atributima različitih klasa možemo spolјa pristupiti indirektno i to metodama get i set. C# je case sensitive programski jezik, što znači da je od velike važnosti da li kucamo malim ili velikim slovima.
2.2. Microsoft Visual Studio 2015
Microsoft Visual Studio je integrisano razvojno okruženje iz Microsofta. Koristi se za razvoj kompjuterskih programa za Microsoft Windows, kao i veb sajtove, veb aplikacije i veb servise. Visual Studio koristi Microsoft platforme za razvoj softvera kao što su Windows API, Windows Forms, Windows Presentation Foundation, Windows Store i Microsoft Silverlight. Može da se piše i upravlja kodom.
Visual Studio uključuje editor koda koji podržava IntelliSense. Dolazi sa ugrađenim C# i C++ , VB NET (Visual Basic .NET) i u Visual Studio 2015 verziji F# programskim jezicima. Takođe se možep rogramirati i u drugim programskim jezicima kao što su JavaScript, CSS, XML, HTML, itd.. instaliranjem jezičkih servisa za ovo razvojno okruženje. Microsoft Visual Studio je jedan od najpopularnijih razvojnih okruženja koji pruža velike mogućnosti u razvoju programa. Njegove mane su donekle ispravljene pomoću raznih ekstenzija razvijenih kako od „Microsofta“ tako i od strane drugih programera. Konkretno kod programiranja Windows form aplikacija, on sam generiše skelet aplikacije i sve podesi automatski kako bi korisnik mogao da se bavi problemom koji treba da reši, a ne pravljenjem prozora aplikacije. Pored desktop aplikacija takođe nudi mogućnost kreiranja i web aplikacija. Microsoft je jako dobro razvio pronalaženje i uklanjanje grešaka pri programiranju zbog toga predstavlja jako popularnu i korisnu alatku programerima.
2.3. .NET Framework
Microsoft .NET Framework je softverska platforma koja je dostupna samo na Wndows računarima. On uključuje veliki broj gotovih biblioteka kodova za uobičajene probleme u programiranju i virtuelnu mašinu koja upravlja izvršavanjem programa pisanih specijalno za .NET Framework. Biblioteka klasa .NET Framework-a obezbeđuje korisnički interfejs, pristup podacima, kriptografiju, razvoj veb aplikacija, numeričke algoritme i mrežnu komunikaciju. Programeri kombinuju biblioteke klasa sa sopstvenim kodom za kreiranje svojih programa. .NET Framework podržava više programskih jezika na način koji omogućava interoperabilnost, pri čemu svaki jezik može biti napisan na drugom. .NET Framework uključuje i dve verzije za mobilne uređaje – NET Compact Framework, je dostupna za Windows CE platforme, i uključuje Windows Mobile uređaje.
2.4. Entity Framework
Entity Framework je set tehnologija u ADO .NET koje se koriste za razvoj bazno orijentisanih softver aplikacija. Pomoću Entity Frameworka možemo da kreiramo aplikacije čije ćemo podatke čuvati u bazi, a u okviru te baze u ovom Framework-u možemo da manipulišemo podacima od sortiranja, do izemene sadržaja i brisanje podataka iz baze. Zahvaljujući Entity Framework-u, programeri mogu apstraktnije da konstruišu bazu sa mnogo manje koda nego što je ranije bilo potrebno.
2.5 Microsoft SQL Server
Microsoft SQL Server je relacijska baza podataka kojoj je primarni jezik za upite Transact SQL (T-SQL), što znači da osim osnovnih i klasičnih (SELECT tipa) SQL upita dozvoljava i složenije stvari poput menjanja programskog toka (IF naredba) i slično. Transact SQL nastao je kao plod saradnje između Microsofta i Sybasea. SQL server je baza podataka koja se smestila na prag između manjih i srednjih baza. Prvi SQL Server za Windows NT izašao je isto kada i sami Windows-i. SQL Server je prva baza podataka na svetu koja je posedovala korisnički interfejs. Takođe, SQL Server je prva komercijalna baza podataka koja je podržala Intelovu 64-bitnu arhitekturu procesora. Od SQL Servera 2000 do SQL Servera 2005 napravljeni su golemi pomaci u poboljšanju same baze podataka. Najbitniji od njih su: Klijentski deo IDE alata, SQL Server Integration Services, Reporting Server, OLAP server, podrška za data mining, Notification Services itd.Microsoft SQL podržava „Open Database Connectivity“, odnosno skraćeno ODBC tehnologiju. SQL Server 2005 poseduje i podršku za Web servise, tj. za Simple Object Access Protocol, Service Oriented Architecture Protocol odnosno skraćeno SOAP W3C standard. To je izvanredna stvar zato što omogućuje ne Windows klijentima da komuniciraju preko te platforme sa SQL Serverom. U verziji 2005 takođe je izdan i sertifikovan JDBC API za komunikaciju sa Java aplikacijama. SQL Server također poseduje i mogućnosti poput mirroringa, clusteringa i snapshots-ova. Microsoft se stvarno potrudio, te je omogućio brojne aplikacije koje spremaju podatke na SQL Server. SQL Server 2005 uključuje i Common Language Runtime odnosno CLR.
XML je skraćenica za EXtensible Markup Language - odnosno jezik za označavanje podataka. Ideja je bila stvoriti jedan jezik koji će biti jednostavno čitljiv i ljudima i kompjuterskim programima. Princip realizacije je vrlo jednostavan: odgovarajući sadržaj treba se uokviriti odgovarajućim oznakama koje ga opisuju i imaju poznato, ili lako shvatljivo značenje. Format oznaka u XMLu vrlo je sličan formatu oznaka u npr. HTML jeziku. Danas je XML jezik vrlo raširen i koristi se za različite namene: odvajanje podataka od prezentacije, razmenu podataka, skladištenje podataka, povećavanje dostupnosti podataka i izradu novih specijaliziranih jezika za označavanje. XML je standardizirani jezik i za njegovu standardizaciju brine se World Wide Web Consortium.
3. Postupak kreiranja aplikacije
Prva stvar koju radimo jeste kreiranje baze podataka sa nazivom FudbalDB. Nakon toga kreiraju se tabele sa njihovim atributima. U svakoj tabeli treba da se nalazi jedan od atributa koji će biti primarni ključ te tabele.
Slika 1. Tabela T_FUDBALER
U tabeli T_FUDBALER postavljen je FudbalerId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog fudbalera. Takođe poseduje strane ključeve KlubId i ReprezentacijaId koji će nam prikazivati sve dodate klubove i reprezentacije za koju mogu da igraju dodati fudbaleri.
U tabeli T_KLUB postavljen je KlubId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog kluba. Takođe poseduje strane ključeve LigaId i TrenerId koji će nam prikazivati sve dodate lige za koji može da nastupaju klubovi, i treneri koji mogu da treniraju određeni klub.
Slika 3. Tabela T_LIGA
U tabeli T_LIGA postavljen je Liga kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svake nove lige.
Slika 4. Tabela T_REPREZENTACIJA
U tabeli T_REPREZENTACIJA postavljen je ReprezentacijaId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog kluba. Takođe poseduje strani ključ TrenerId koji će nam prikazivati trenere koji mogu da treniraju određenu reprezentaciju.
Slika 5. Tabela T_TRENER
U tabeli T_TRENER postavljen je TrenerId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog trenera.
Slika 6. Tabela T_UTAKMICA
U tabeli T_UTAKMICA postavljen je UtakmicaId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog kluba. Takođe poseduje strane ključeve KlubId1, KlubId2 i LigaId koji će nam prikazivati klubove koji mogu da igraju određenu utakmicu i u kojoj ligi se igra određena utakmica.
Slika 7. Tabela T_TAKMICENJE
U tabeli T_TAKMICENJE postavljen je TakmicenjeId kao primarni ključ. Ovaj atribut ima osobinu IDENTITY i povećava se za 1 prilikom unosa svakog novog takmičenja.
Slika 8. Tabela T_KLUB_TAKMICENJE
U tabeli T_KLUB_TAKMICENJE postavljeni su KlubId i TakmicenjeId kao primarni ključevi. Tj. oni su strani ključevi koji spajaju tabelu T_KLUB i tabelu T_TAKMICENJE. Omogućava nam da prilikom dodavanja takmičenja možemo u checkedListBoxu da izaberemo određene klubove koji igraju određeno takmičenje.
Napravljeno je 9 klasa koje su sledeće: Fudbaler, FudbalerXML, Klub, Liga, Reprezentacija, Takmicenje, Trener, Utakmica, TrenerXML.
Zatim je napravljeno 16 formi koje su sledeće: Form1, frmFudbaler, frmFudbaleriKlub, frmFudbaleriReprezentacija, frmKlub, frmKluboviLiga, frmKluboviTreneri, frmLiga, frmReprezentacija, frmReprezentacijaTrener, frmTakmicenje, frmUtakmice, frmUtakmiceDomacin, frmUtakmiceGost, frmUtakmiceLiga.
Posle je napravljeno 8 izveštaja rptFudbalerKlub, rptFudbalerReprezentacija, rptKlubLiga, rptKlubTrener, rptReprezentacijaTrener, rptUtakmicaLiga, rptUtakmiceDomacin, rptUtakmiceGost.
Slika 9. Izgled forme Form1 (Podaci)
U glavnoj formi Form1 je ubačena menuStrip alatka sa poljima „Podaci“ i „Izvestaji“. Polje „Podaci“ sadrži 7 podpolja preko kojih se pristupa formama za unos podataka o fudbalerima, klubovima, takmičenjima, trenerima, utakmicama, reprezentacijama i ligama.
Slika 10. Izgled forme Form1 (Izvestaji)
Polje „Izvestaji“ sadrži 8 podpolja koja omogućuju prikaz podataka o tome za koji klub igra određeni fudbaler, za koju reprezentaciju nastupa određeni fudbaler, koji trener trenira određeni klub, u kojoj ligi nastupa određeni klub, koji trener trenira određenu reprezentaciju, spisak utakmica klubova kao domaćina, spisak utakmica klubova kao gosta i spisak utakmica po ligi.
Slika 11. Izgled forme frmFudbaleri
Karakteristike fudbalera su njegovo: Ime, Prezime, Broj, Pozicija, Nacionalnost, Klub i Reprezentacija. Prvih pet karakteristika su polja tipa textBox i u njih se vrši upis. Polje klub je tipa comboBox, kao i polje reprezentacija. ComboBoxovi iščitavaju podatke koji se nalaze u formama frmKlub i frmReprezentacija. Tj. comboBox Klub iščitava Naziv i GodinaOsnivanja kluba, a comboBox Reprezentacija samo Naziv. Da bi se iščitalo moraju se kreirati klubovi i reprezentacije. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate fudbalere u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Fudbaler je povezana sa formom frmFudbaleri.
Slika 12. Izgled forme frmFudbaleri (XML)
Takođe se nalazi menuStrip na kojoj je prikazano polje XML. XML sadrži Uvezi i Izvezi, koje služi za to da se upisani podaci izveze u XML, kao i da se uveze u bazu podataka. XML je povezan sa klasom FudbalerXML.
Slika 13. Izgled forme frmKlubovi
Karakteristike kluba su njegov: Naziv, Stadion, Kapacitet, Godina osnivanja, Liga i Trener. Prve četiri karakteristike su polja tipa textBox i u njih se vrši upis. Polje liga je tipa comboBox, kao i polje trener. ComboBoxovi iščitavaju podatke koji se nalaze u formama frmLiga i frmTrener. Tj. comboBox Liga iščitava Naziv i Rang lige, a comboBox Trener Ime i Prezime trenera. Da bi se iščitalo moraju se kreirati lige i treneri. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate klubove u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Klub je povezana sa formom frmKlubovi.
Slika 14. Izgled forme frmTakmicenje
Karakteristike takmičenja su njegov: Naziv, Datum i Klubovi. Prva karakteristika je polje tipa textBox i u njega se vrši upis. Polje datum je DateTimePicker koji nam prikazuje datum u određenom formatu. CheckedListBox iščitava podatke koji se nalaze u formama frmKlubovi. Tj. CheckedListBox Klubovi iščitava sve postojeće klubove. Da bi se iščitalo moraju se kreirati klubovii. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sva dodata takmičenja u bazu podataka i druga DataGridView kontrola koja prikazuje prijavljene klubove na određeno takmičenje, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Takmicenje je povezana sa formom frmTakmicenje.
Slika 15. Izgled forme frmTrenerKarakteristike trenera su njegovo: Ime, Prezime, Nacionalnost i Vrsta. Sve karakteristike
polja su tipa a textBox i u njih se vrši upis. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate trenere u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Trener je povezana sa formom frmTrener.
Slika 16. Izgled forme frmTrener (XML)
Takođe se nalazi menuStrip na kojoj je prikazano polje XML. XML sadrži Uvezi i Izvezi, koje služi za to da se upisani podaci izveze u XML, kao i da se uveze u bazu podataka. XML je povezan sa klasom TrenerXML.
Slika 17. Izgled forme frmUtakmiceKarakteristike utakmice su njene: Liga, Datum, Stadion, Vremenska prognoza, Domaćin i
Gost. Stadion i Vremenska prognoza je karakteristike tipa polja textBox i u njih se vrši upis. Polje liga je tipa comboBox, kao i polje Domaćin i Gost. ComboBoxovi iščitavaju podatke koji se nalaze u formama frm Liga i frmKlubovi. Tj. comboBox Liga iščitava Naziv i Rang lige, a comboBoxovi Domaćin i Gost Naziv i Godina osnivanja klubova. Da bi se iščitalo moraju se kreirati lige i klubovi. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate utakmice u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Utakmica je povezana sa formom frmUtakmice.
Slika 18. Izgled forme frmReprezentacija
Karakteristike reprezentacije su njen: Naziv, Ime kapitena, Prezime Kapitena, Brojno stanje i Trener. Prvih četiri karakteristika su polja tipa textBox i u njega se vrši upis. Polje trener je tipa comboBox . ComboBox iščitava podatke koji se nalazi u formi frmTrener. Tj comboBox Trener iščitava Ime i Prezime trenera. Da bi se iščitalo mora se kreirati trener. U ovoj formi se nalazi i
DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate reprezentacije u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Reprezentacija je povezana sa formom frmReprezentacija.
Slika 19. Izgled forme frmLiga
Karakteristike lige su njen: Naziv, Rang lige i Broj klubova. Sva tri su karakteristike tipa polja textBox i u njega se vrši upis.. U ovoj formi se nalazi i DataGridView kontrola, koja omogućuje prikaz podataka za sve dodate lige u bazu podataka, dugmad za dodavanje, promenu i brisanje podataka, kao i dugmad za potvrđivanje i odustajanje od započete akcije nad podacima iz baze. Klasa Liga je povezana sa formom frmLiga.
Slika 20. Izgled forme frmFudbaleriKlubovi (Izveštaj svi klubovi)
U izveštaju se prikazuje: Ime, Prezime, Broj, Pozicija, Nacionalnost, Naziv kluba i Godina osnivanja kluba. Ovim izveštajem je omogućen prikaz svih fudbalera koji nastupaju za određene klubove. Sa formom frmFudbaleriKlubovi povezan je izveštaj rptFudbalerKlub.
Slika 21. Izgled forme frmFudbaleriKlubovi (Izveštaj jedan klub)
Slika 22. Izgled forme frmFudbaleriReprezentacije (Izveštaj sve reprezentacije)
U izveštaju se prikazuje: Ime, Prezime, Broj, Pozicija, Nacionalnost i Naziv reprezentacije. Ovim izveštajem je omogućen prikaz svih fudbalera koji nastupaju za određene reprezentacije. Sa formom frmFudbaleriReprezentacije povezan je izveštaj rptFudbalerReprezentacija.
Slika 23. Izgled forme frmFudbaleriReprezentacije (Izveštaj jedna reprezentacija)
Slika 24. Izgled forme frmKluboviTreneri (Izveštaj svi treneri)
U izveštaju se prikazuje: Naziv, Stadion, Kapacitet, Godina osnivanja, Ime i Prezime trenera. Ovim izveštajem je omogućen prikaz svih trenera koji treniraju određene klubove. Sa formom frmKluboviTreneri povezan je izveštaj rptKlubTrener.
Slika 25. Izgled forme frmKluboviTreneri (Izveštaj jedan trener)
Slika 26. Izgled forme frmKluboviLiga (Izveštaj sve lige)
U izveštaju se prikazuje: Naziv, Stadion, Kapacitet, Godina osnivanja, Naziv i Rang lige. Ovim izveštajem je omogućen prikaz svih liga i njenih klubovae. Sa formom frmKluboviLiga povezan je izveštaj rptKlubLiga.
Slika 27. Izgled forme frmKluboviLiga (Izveštaj jedna liga)
Slika 28. Izgled forme frmReprezentacijaTrener (Izveštaj svi treneri)
U izveštaju se prikazuje: Naziv, Ime kapitena, Prezime kapitena, Brojno stanje, Ime i Prezime trenera. Ovim izveštajem je omogućen prikaz svih trenera koji treniraju određene reprezentacije. Sa formom frmReprezentacijaTrener povezan je izveštaj rptReprezentacijaTrener.
Slika 29. Izgled forme frmReprezentacijaTrener (Izveštaj jedan trener)
Slika 30. Izgled forme frmUtakmiceDomacin (Izveštaj svi domacini)
U izveštaju se prikazuje: Naziv lige, Rang lige, Datum utakmice, Stadion, Vremenska prognoza, Naziv domacina, Godina osnivanja domacina, Naziv gosta i Godina osnivanja Gosta. Ovim izveštajem je omogućen prikaz svih utakmica koji određeni klub igra kao domaćin. Sa formom frmUtakmiceDomacin povezan je izveštaj rptUtakmiceDomacin.
Slika 31. Izgled forme frmUtakmiceDomacin (Izveštaj jedan domacin)
Slika 32. Izgled forme frmUtakmiceGost (Izveštaj svi gosti)
U izveštaju se prikazuje: Naziv lige, Rang lige, Datum utakmice, Stadion, Vremenska prognoza, Naziv domacina, Godina osnivanja domacina, Naziv gosta i Godina osnivanja Gosta. Ovim izveštajem je omogućen prikaz svih utakmica koji određeni klub igra kao gost. Sa formom frmUtakmiceGost povezan je izveštaj rptUtakmiceGost.
Slika 33. Izgled forme frmUtakmiceGost (Izveštaj jedan gost)
Slika 34. Izgled forme frmUtakmiceLiga (Izveštaj sve lige)
U izveštaju se prikazuje: Naziv lige, Rang lige, Datum utakmice, Stadion, Vremenska prognoza, Naziv domacina, Godina osnivanja domacina, Naziv gosta i Godina osnivanja Gosta. Ovim izveštajem je omogućen prikaz svih utakmica koji se igraju u određenoj ligi. Sa formom frmUtakmiceLiga povezan je izveštaj rptUtakmicaLiga.
Slika 35. Izgled forme frmUtakmiceLiga (Izveštaj jedna liga)
4. Zaključak
Mogućnosti za dalji razvoj aplikacije su na primer, da se na formi frmUtakmice doda još sudije. Da se omogući da kada se izabere određenea liga prikažu samo klubovi iz te lige, i da Domaćin i Gost ne mogu biti isti klubovi. Moglo bi se dodati da se izlistaju fudbaleri koji igraju kao domaćini i kao gosti. Na formi frmFudbaleri bi se moglo uraditi da igrač koji je povređen, ima žuti, crveni karton ili je suspendiran. To su neke opcije koje postoje za unapređivanje ovog programa.
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Fudbal{ [Serializable] public class Fudbaler { private int id; private string ime; private string prezime; private int broj; private string pozicija; private string nacionalnost; private Klub klub; private Reprezentacija reprezentacija;
public int ID { get { return id; } set { id = value; } }
public string Ime { get { return ime; } set { if (value == "") throw new Exception("Morate uneti ime fudbalera!!!"); ime = value; } }
public string Prezime { get { return prezime; } set { if (value == "") throw new Exception("Morate uneti prezime fudbalera!!!"); prezime = value; } }
public int Broj { get { return broj; } set { if (value == 0) throw new Exception("Morate uneti broj fudbalera!!!"); broj = value; } }
public string Pozicija { get { return pozicija; } set { if (value == "") throw new Exception("Morate uneti poziciju fudbalera!!!"); pozicija = value; } } public string Nacionalnost { get { return nacionalnost; } set { if (value == "") throw new Exception("Morate uneti nacionalnost fudbalera!!!"); nacionalnost = value; } }
public Klub Klub { get { return klub; } set { if (value.ID == 0) throw new Exception("Morate uneti Klub!!!"); klub = value; } } public Reprezentacija Reprezentacija { get { return reprezentacija; } set { if (value.ID == 0) throw new Exception("Morate uneti Reprezentaciju!!!"); reprezentacija = value; } }
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Fudbal{ [Serializable] public class Klub { private int id; private string naziv; private string stadion; private int kapacitet; private int godinaOsnivanja; private List<Fudbaler> fudbaleri; private Trener trener; private Liga liga;
public int ID { get { return id; } set { id = value; } }
public string Naziv { get { return naziv; } set { if (value == "") throw new Exception("Morate uneti naziv kluba!!!"); naziv = value; } }
public string Stadion { get { return stadion; }
set { if (value == "") throw new Exception("Morate uneti stadion!!!"); stadion = value; } } public int Kapacitet { get { return kapacitet; } set { if (value == 0) throw new Exception("Morate uneti kapacitet stadiona!!"); kapacitet = value; } } public int GodinaOsnivanja { get { return godinaOsnivanja; } set { if (value == 0) throw new Exception("Morate uneti godinu osnivanja!!!"); godinaOsnivanja = value; } }
public List<Fudbaler> Fudbaleri { get { return fudbaleri; } set { fudbaleri = value; } } public Liga Liga { get { return liga; } set { if (value.ID == 0) throw new Exception("Morate uneti Ligu!!!"); liga = value; } } public Trener Trener { get { return trener; } set { if (value.ID == 0) throw new Exception("Morate uneti Trenera!!!"); trener = value; } }
string deleteSql = "DELETE FROM T_KLUB WHERE KlubId = @KlubId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = deleteSql; command.Parameters.Add(new SqlParameter("@KlubId", ID)); connection.Open(); command.ExecuteNonQuery(); } }
public List<Klub> ucitajKlubove() { List<Klub> klubovi = new List<Klub>(); string queryString = "SELECT klub.KlubId, klub.Naziv, klub.Stadion, klub.Kapacitet, klub.GodinaOsnivanja, liga.LigaId, liga.Naziv AS NazivLige, liga.Rang, liga.BrojKlubova, trener.TrenerId, trener.Ime, trener.Prezime, trener.Nacionalnost, trener.Vrsta FROM T_KLUB klub, T_LIGA liga, T_TRENER trener WHERE klub.LigaId = liga.LigaId AND klub.TrenerId=trener.TrenerId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Klub klub; while (reader.Read()) { klub = new Klub(); klub.ID = Int32.Parse(reader["KlubId"].ToString()); klub.Naziv = reader["Naziv"].ToString(); klub.Stadion = reader["Stadion"].ToString(); klub.Kapacitet = Int32.Parse(reader["Kapacitet"].ToString()); klub.GodinaOsnivanja = Int32.Parse(reader["GodinaOsnivanja"].ToString()); klub.liga = new Liga(); klub.liga.ID = Int32.Parse(reader["LigaId"].ToString()); klub.liga.Naziv = reader["NazivLige"].ToString(); klub.liga.Rang = Int32.Parse(reader["Rang"].ToString()); klub.liga.BrojKlubova = Int32.Parse(reader["BrojKlubova"].ToString()); klub.trener = new Trener(); klub.trener.ID = Int32.Parse(reader["TrenerId"].ToString()); klub.trener.Ime = reader["Ime"].ToString(); klub.trener.Prezime = reader["Prezime"].ToString(); klub.trener.Nacionalnost = reader["Nacionalnost"].ToString(); klub.trener.Vrsta = reader["Vrsta"].ToString();
klubovi.Add(klub);
} } } return klubovi; } public List<Klub> ucitajKluboveZaTrenere(int trenerId) { List<Klub> klubovi = new List<Klub>(); string queryString = "SELECT klub.KlubId, klub.Naziv, klub.Stadion, klub.Kapacitet, klub.GodinaOsnivanja, trener.TrenerId, trener.Ime, trener.Prezime, trener.Nacionalnost, trener.Vrsta FROM T_KLUB klub, T_TRENER trener WHERE klub.TrenerId=trener.TrenerId AND trener.TrenerId = @TrenerId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@TrenerId", trenerId));
connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Klub klub; while (reader.Read()) { klub = new Klub(); klub.ID = Int32.Parse(reader["KlubId"].ToString()); klub.Naziv = reader["Naziv"].ToString(); klub.Stadion = reader["Stadion"].ToString(); klub.Kapacitet = Int32.Parse(reader["Kapacitet"].ToString()); klub.GodinaOsnivanja = Int32.Parse(reader["GodinaOsnivanja"].ToString()); klub.trener = new Trener(); klub.trener.ID = Int32.Parse(reader["TrenerId"].ToString()); klub.trener.Ime = reader["Ime"].ToString(); klub.trener.Prezime = reader["Prezime"].ToString(); klub.trener.Nacionalnost = reader["Nacionalnost"].ToString(); klub.trener.Vrsta = reader["Vrsta"].ToString(); klubovi.Add(klub); } } } return klubovi; }
public List<Klub> ucitajKluboveZaLige(int ligaId) { List<Klub> klubovi = new List<Klub>(); string queryString = "SELECT klub.KlubId, klub.Naziv, klub.Stadion, klub.Kapacitet, klub.GodinaOsnivanja, liga.LigaId, liga.Naziv AS NazivLige, liga.Rang, liga.BrojKlubova FROM T_KLUB klub, T_LIGA liga WHERE klub.LigaId=liga.LigaId AND liga.LigaId = @LigaId;";
using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@LigaId", ligaId));
connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Klub klub; while (reader.Read()) { klub = new Klub(); klub.ID = Int32.Parse(reader["KlubId"].ToString()); klub.Naziv = reader["Naziv"].ToString(); klub.Stadion = reader["Stadion"].ToString(); klub.Kapacitet = Int32.Parse(reader["Kapacitet"].ToString()); klub.GodinaOsnivanja = Int32.Parse(reader["GodinaOsnivanja"].ToString()); klub.liga = new Liga(); klub.liga.ID = Int32.Parse(reader["LigaId"].ToString()); klub.liga.Naziv = reader["NazivLige"].ToString(); klub.liga.Rang = Int32.Parse(reader["Rang"].ToString()); klub.liga.BrojKlubova = Int32.Parse(reader["BrojKlubova"].ToString()); klubovi.Add(klub); } } } return klubovi; } }}
5.4 Kod klase Liga
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Fudbal{ [Serializable] public class Liga { private int id; private string naziv; private int rang; private int brojKlubova;
private List<Klub> klub;
public int ID { get { return id; } set { id = value; } }
public string Naziv { get { return naziv; } set { if (value == "") throw new Exception("Morate uneti naziv lige!!!"); naziv = value; } } public int Rang { get { return rang; } set { if (value == 0) throw new Exception("Morate uneti rang lige!!"); rang = value; } } public int BrojKlubova { get { return brojKlubova; } set { if (value == 0) throw new Exception("Morate uneti broj klubova lige!!"); brojKlubova = value; } } public List<Klub> Klub { get { return klub; } set { klub = value; } }
public void obrisiLigu() { string deleteSql = "DELETE FROM T_LIGA WHERE LigaId = @LigaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = deleteSql; command.Parameters.Add(new SqlParameter("@LigaId", ID)); connection.Open(); command.ExecuteNonQuery(); } }
public List<Liga> ucitajLige() { List<Liga> lige = new List<Liga>(); string queryString = "SELECT * FROM T_LIGA;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; connection.Open(); using (SqlDataReader reader = command.ExecuteReader())
{ Liga liga; while (reader.Read()) { liga = new Liga(); liga.ID = Int32.Parse(reader["LigaId"].ToString()); liga.Naziv = reader["Naziv"].ToString(); liga.Rang = Int32.Parse(reader["Rang"].ToString()); liga.BrojKlubova = Int32.Parse(reader["BrojKlubova"].ToString()); lige.Add(liga); } } } return lige; }
}}
5.5. Kod klase Reprezentacija
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Fudbal{ [Serializable] public class Reprezentacija { private int id; private string naziv; private string ime; public string prezime; private int brojnoStanje; private List<Fudbaler> fudbaleri; private Trener trener; private Fudbaler fudbaler;
public int ID { get { return id; } set { id = value; } }
public string Naziv { get { return naziv; } set { if (value == "") throw new Exception("Morate uneti naziv reprezentacije!!!"); naziv = value;
} }
public string Ime { get { return ime; } set { if (value == "") throw new Exception("Morate uneti ime kapitena!!!"); ime = value; } } public string Prezime { get { return prezime; } set { if (value == "") throw new Exception("Morate uneti prezime kapitena!!!"); prezime = value; } } public int BrojnoStanje { get { return brojnoStanje; } set { if (value == 0) throw new Exception("Morate uneti brojno stanje fudbalera!!"); brojnoStanje = value; } } public List<Fudbaler> Fudbaleri { get { return fudbaleri; } set { fudbaleri = value; } }
public Trener Trener { get { return trener; } set { if (value.ID == 0) throw new Exception("Morate uneti Trenera!!!"); trener = value; } }
public Fudbaler Fudbaler { get { return fudbaler; } set { if (value.ID == 0)
throw new Exception("Morate uneti Fudbalera!!!"); fudbaler = value; } }
public void azurirajTrenera() { string updateSql = "UPDATE T_TRENER " + "SET Ime= @Ime, Prezime = @Prezime," + "Nacionalnost= @Nacionalnost, Vrsta= @Vrsta WHERE TrenerId = @TrenerId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = updateSql; command.Parameters.Add(new SqlParameter("@TrenerId", ID)); command.Parameters.Add(new SqlParameter("@Ime", Ime)); command.Parameters.Add(new SqlParameter("@Prezime", Prezime)); command.Parameters.Add(new SqlParameter("@Nacionalnost", Nacionalnost)); command.Parameters.Add(new SqlParameter("@Vrsta", Vrsta)); connection.Open(); command.ExecuteNonQuery(); } } public void obrisiTrenera() { string deleteSql = "DELETE FROM T_TRENER WHERE TrenerId = @TrenerId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = deleteSql; command.Parameters.Add(new SqlParameter("@TrenerId", ID)); connection.Open(); command.ExecuteNonQuery(); } } public List<Trener> ucitajTrenere() { List<Trener> treneri = new List<Trener>(); string queryString = "SELECT * FROM T_TRENER;";
using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Trener trn; while (reader.Read()) { trn = new Trener();
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Fudbal{ [Serializable] public class Utakmica { private int id; private DateTime datum; private string stadion; private string prognoza; private Klub klub1; private Klub klub2; private Liga liga;
public int ID { get { return id; } set { id = value; } }
public DateTime Datum { get { return datum; } set { datum = value; } } public string Stadion
{ get { return stadion; } set { if (value == "") throw new Exception("Morate uneti stadion!!!"); stadion = value; } } public string Prognoza { get { return prognoza; } set { if (value == "") throw new Exception("Morate uneti vremensku prognozu!!"); prognoza = value; } }
public Klub Klub1 { get { return klub1; } set { if (value.ID == 0) throw new Exception("Morate uneti Domaćina!!!"); klub1 = value; } }
public Klub Klub2 { get { return klub2; } set { if (value.ID == 0) throw new Exception("Morate uneti Gosta!!!"); klub2 = value; } }
public Liga Liga { get { return liga; } set { if (value.ID == 0) throw new Exception("Morate uneti Ligu!!!"); liga = value; } }
public void obrisiUtakmicu() { string deleteSql = "DELETE FROM T_UTAKMICA WHERE UtakmicaId = @UtakmicaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = deleteSql; command.Parameters.Add(new SqlParameter("@UtakmicaId", ID));
connection.Open(); command.ExecuteNonQuery(); } } public List<Utakmica> ucitajUtakmice() { List<Utakmica> utakmice = new List<Utakmica>(); string queryString = "SELECT utk.UtakmicaId,utk.Datum,utk.Stadion,utk.Prognoza, k1.KlubId AS KlubId1,k1.Naziv AS Domacin,k1.Stadion AS StadionDomacina,k1.Kapacitet AS KapacitetDomacina,k1.GodinaOsnivanja AS GodinaOsnivanjaDomacina, k2.KlubId AS KlubId2,k2.Naziv AS Gost,k2.Stadion AS StadionGosta,k2.Kapacitet AS KapacitetGosta,k2.GodinaOsnivanja AS GodinaOsnivanjaGosta,liga.LigaId, liga.Naziv AS NazivLige, liga.Rang,liga.BrojKlubova FROM T_UTAKMICA utk, T_KLUB k1, T_KLUB k2, T_LIGA liga WHERE utk.KlubId1 = k1.KlubId AND utk.KlubId2 = k2.KlubId AND utk.LigaId=liga.LigaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Utakmica utk; while (reader.Read()) { utk = new Utakmica(); utk.ID = Int32.Parse(reader["UtakmicaId"].ToString()); utk.Datum = DateTime.Parse(reader["Datum"].ToString()); utk.Stadion = reader["Stadion"].ToString(); utk.Prognoza = reader["Prognoza"].ToString();
Klub k2 = new Klub(); k2.ID = Int32.Parse(reader["KlubId2"].ToString()); k2.Naziv = reader["Gost"].ToString(); k2.Stadion = reader["StadionGosta"].ToString(); k2.Kapacitet = Int32.Parse(reader["KapacitetGosta"].ToString()); k2.GodinaOsnivanja = Int32.Parse(reader["GodinaOsnivanjaGosta"].ToString());
utk.Klub2 = k2;
Liga liga = new Liga(); liga.ID = Int32.Parse(reader["LigaId"].ToString()); liga.Naziv = reader["NazivLige"].ToString(); liga.Rang = Int32.Parse(reader["Rang"].ToString());
public List<Utakmica> ucitajUtakmiceZaDomacina(int klubId) { List<Utakmica> utakmice = new List<Utakmica>(); string queryString = "SELECT utk.UtakmicaId,utk.Datum,utk.Stadion,utk.Prognoza, k1.KlubId AS KlubId1,k1.Naziv AS Domacin,k1.Stadion AS StadionDomacina,k1.Kapacitet AS KapacitetDomacina,k1.GodinaOsnivanja AS GodinaOsnivanjaDomacina, k2.KlubId AS KlubId2,k2.Naziv AS Gost,k2.Stadion AS StadionGosta,k2.Kapacitet AS KapacitetGosta,k2.GodinaOsnivanja AS GodinaOsnivanjaGosta,liga.LigaId, liga.Naziv AS NazivLige, liga.Rang,liga.BrojKlubova FROM T_UTAKMICA utk, T_KLUB k1, T_KLUB k2, T_LIGA liga WHERE utk.KlubId1 = k1.KlubId AND utk.KlubId2 = k2.KlubId AND k1.KlubId = @KlubId AND utk.LigaId=liga.LigaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@KlubId", klubId));
connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Utakmica utk; while (reader.Read()) { utk = new Utakmica(); utk.ID = Int32.Parse(reader["UtakmicaId"].ToString()); utk.Datum = DateTime.Parse(reader["Datum"].ToString()); utk.Stadion = reader["Stadion"].ToString(); utk.Prognoza = reader["Prognoza"].ToString();
Liga liga = new Liga(); liga.ID = Int32.Parse(reader["LigaId"].ToString()); liga.Naziv = reader["NazivLige"].ToString(); liga.Rang = Int32.Parse(reader["Rang"].ToString()); liga.BrojKlubova = Int32.Parse(reader["BrojKlubova"].ToString());
utk.Liga = liga;
utakmice.Add(utk); } } } return utakmice; }
public List<Utakmica> ucitajUtakmiceZaGosta(int klubId) { List<Utakmica> utakmice = new List<Utakmica>(); string queryString = "SELECT utk.UtakmicaId,utk.Datum,utk.Stadion,utk.Prognoza, k1.KlubId AS KlubId1,k1.Naziv AS Domacin,k1.Stadion AS StadionDomacina,k1.Kapacitet AS KapacitetDomacina,k1.GodinaOsnivanja AS GodinaOsnivanjaDomacina, k2.KlubId AS KlubId2,k2.Naziv AS Gost,k2.Stadion AS StadionGosta,k2.Kapacitet AS KapacitetGosta,k2.GodinaOsnivanja AS GodinaOsnivanjaGosta,liga.LigaId, liga.Naziv AS NazivLige, liga.Rang,liga.BrojKlubova FROM T_UTAKMICA utk, T_KLUB k1, T_KLUB k2, T_LIGA liga WHERE utk.KlubId1 = k1.KlubId AND utk.KlubId2 = k2.KlubId AND k2.KlubId = @KlubId AND utk.LigaId=liga.LigaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@KlubId", klubId));
connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Utakmica utk; while (reader.Read()) { utk = new Utakmica(); utk.ID = Int32.Parse(reader["UtakmicaId"].ToString()); utk.Datum = DateTime.Parse(reader["Datum"].ToString()); utk.Stadion = reader["Stadion"].ToString(); utk.Prognoza = reader["Prognoza"].ToString();
Klub k1 = new Klub(); k1.ID = Int32.Parse(reader["KlubId1"].ToString()); k1.Naziv = reader["Domacin"].ToString(); k1.Stadion = reader["StadionDomacina"].ToString();
Liga liga = new Liga(); liga.ID = Int32.Parse(reader["LigaId"].ToString()); liga.Naziv = reader["NazivLige"].ToString(); liga.Rang = Int32.Parse(reader["Rang"].ToString()); liga.BrojKlubova = Int32.Parse(reader["BrojKlubova"].ToString());
utk.Liga = liga;
utakmice.Add(utk); } } } return utakmice; }
public List<Utakmica> ucitajUtakmiceZaLigu(int ligaId) { List<Utakmica> utakmice = new List<Utakmica>(); string queryString = "SELECT utk.UtakmicaId,utk.Datum,utk.Stadion,utk.Prognoza, k1.KlubId AS KlubId1,k1.Naziv AS Domacin,k1.Stadion AS StadionDomacina,k1.Kapacitet AS KapacitetDomacina,k1.GodinaOsnivanja AS GodinaOsnivanjaDomacina, k2.KlubId AS KlubId2,k2.Naziv AS Gost,k2.Stadion AS StadionGosta,k2.Kapacitet AS KapacitetGosta,k2.GodinaOsnivanja AS GodinaOsnivanjaGosta,liga.LigaId, liga.Naziv AS NazivLige, liga.Rang,liga.BrojKlubova FROM T_UTAKMICA utk, T_KLUB k1, T_KLUB k2, T_LIGA liga WHERE utk.KlubId1 = k1.KlubId AND utk.KlubId2 = k2.KlubId AND utk.LigaId=liga.LigaId AND liga.LigaId = @LigaId;"; using (SqlConnection connection = new SqlConnection(_connectionString)) { SqlCommand command = connection.CreateCommand(); command.Parameters.Add(new SqlParameter("@LigaId", ligaId)); command.CommandText = queryString; connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { Utakmica utk; while (reader.Read()) { utk = new Utakmica();
namespace Fudbal{ public partial class frmFudbaler : Form { List<Fudbaler> fudbaleriList = new List<Fudbaler>(); string akcija = ""; int indeksSelektovanog = -1;
selektovaniFudbaler.Nacionalnost = txtNacionalnost.Text; Klub klub = new Klub(); klub.ID = Int32.Parse(cbxKlub.SelectedValue.ToString()); selektovaniFudbaler.Klub = klub; Reprezentacija reprezentacija = new Reprezentacija();
Fudbaler fud = new Fudbaler(); fud.Ime = txtIme.Text; fud.Prezime = txtPrezime.Text; fud.Broj = Int32.Parse(txtBroj.Text); fud.Pozicija = txtPozicija.Text;
fud.Nacionalnost = txtNacionalnost.Text; Klub klub = new Klub(); klub.ID = Int32.Parse(cbxKlub.SelectedValue.ToString()); fud.Klub = klub; Reprezentacija reprezentacija = new Reprezentacija(); reprezentacija.ID = Int32.Parse(cbxReprezentacija.SelectedValue.ToString()); fud.Reprezentacija = reprezentacija; fud.dodajFudbalera();
namespace Fudbal{ public partial class frmTrener : Form { List<Trener> treneriList = new List<Trener>(); string akcija = ""; int indeksSelektovanog = -1;
namespace Fudbal{ public partial class frmUtakmice : Form { List<Utakmica> utakmiceList = new List<Utakmica>(); string akcija = ""; int indeksSelektovanog = -1;
namespace Fudbal{ public partial class frmKluboviLiga : Form { public frmKluboviLiga() { InitializeComponent(); List<Liga> ligaList = new Liga().ucitajLige();
int itemValue = Int32.Parse(cbxTrener.SelectedValue.ToString());
if (itemValue == 0) ReprezentacijaBindingSource.DataSource = new Reprezentacija().ucitajReprezentacije(); else ReprezentacijaBindingSource.DataSource = new Reprezentacija().ucitajReprezentacijeZaTrenere(itemValue); this.reportViewer1.RefreshReport(); }
namespace Fudbal{ public partial class frmUtakmiceDomacin : Form { public frmUtakmiceDomacin() { InitializeComponent(); List<Klub> kluboviList = new Klub().ucitajKlubove();
namespace Fudbal{ public partial class frmUtakmiceGost : Form { public frmUtakmiceGost() { InitializeComponent(); List<Klub> kluboviList = new Klub().ucitajKlubove();
int itemValue = Int32.Parse(cbxKlub2.SelectedValue.ToString());
if (itemValue == 0) UtakmicaBindingSource.DataSource = new Utakmica().ucitajUtakmice(); else UtakmicaBindingSource.DataSource = new Utakmica().ucitajUtakmiceZaGosta(itemValue); this.reportViewer1.RefreshReport(); }