Ok, neke primedbe i dobronamerne kritike
MODEL
- za pocetak nemoj koristiti access 2007+, nemaju svi provajdera za to (ja nisam imao) niti je on preporucen za male desktop aplikacije. Bazu kreiraj u SDF formatu (Add New Item | Local Database). Access je i zvanicno razveden od desktop aplikacija
- Fali ti veza izmedju profesora i ispita, mozda je to van opsega tvog diplomskog ali u realnim uslovima tvoj model bi dozvolio npr kreiranje polaganja Matematike 1 kod Cirkovica koji predaje softverske predmete.
- Treba (bar za akademski projekat) da gadjas koser 3NF (treca normalna forma) za model baze, bar po meni. Pored toga sto je to dobra praksa da prepoznas greske i potencijalne probleme u modelu daje ti i opciju da iskucas malo teksta o tome u radu

fillera nikad dosta narocito u Srbiji gde se akademski radovi vrednuju po kilazi. Ti si bio dobro poceo sa cepanjem glavne Zakazani tabele na 3NF ali si u nekom trenutku stao. Kad to kazem mislim na sledece:
- prostrije nisu 3NF ako su imena soba jedinstvena, onda imaju dva kandidata za kljuc (ID i ime prostorije) i otvaraju prostor za logicku gresku (dve razlicite sobe koje se zovu isto). Kao sto si radio sa rokom, radi i ovde, ime prostorije je unique iskoristi ga kao kljuc
- isto vazi i za Ispit (ID i Sifra), sifra je ocigledno jedinstvena, iskoristi nju.
- da se razumemo, u realnom zivotu neces biti ekstremista i drzati se 3NF kao pijan plota, niti ces vuci string kljuceve kao FK zbog drugih razloga. U svakom slucaju konsultuj se sa mentorom, dal da uradis skolski ili inzenjerski.
- Iskreno mi se ne svidja kako koristis datasetove

. Ok, izabrao si datasetove (ja ne bih za ovaj app, linq2sql je ovde idealan) i to je u redu, ali onda ih koristi kako treba

. Najvise bode oci to sto koristis kod da transformises podatke (npr Profesori) i onda mesas typed dataset i POCO model i potpuno bacas u vodu sve benefite koriscenja dataseta

, i onda na sve to jos i nabacis jednu netipiziranu data tabelu

.
Umesto toga fokusiraj se na jedno. Za pocetak iskoristi transformaciju na nivou SQLa. Nigde ne pise da tvoja tabela u datasetu mora da bude 1-1 sema kao u bazi, narocito ako je u pitanju samo lookup tabela. Dakle izbaci tabelu profesori iz dataset-a
1) Na dataset-u uradi rclick i "Add Table Adapter"
2) Izaberi SQL Query
3) Ubaci sledeci Query:
SELECT ID, Ime + ' ' + Prezime AS Profesor, Kancelarija, email FROM Profesori i Next/Finish i imaces novu transformisanu tableu u datasetu i uopste to ne treba Profesor POCO tip ni transformacija
- Ako si uradio 3NF za prostoriju ti vise ni ne treba transformacija
- Vidim isto da koristis POCO klase da bi dodao nova "polja" u model. TO mozes i direktno da uradis u typed datatable kroz parzijalnu klasu. doubleclick tabelu i kad ti otvori sors napravis sledece
Code (csharp):
public partial class DataSet1 {
partial class ProstorijaDataTable
{
public bool Check { get; set; }
}
}
i voila, imas novo polje koje nije vezano za bazu a vidljivo je kroz interfejs tabele.
Nemoj koristiti untyped dataset elemente. Nije ni lepo a ni korisno a vec ionako IMAS model tabele za grid.
Kreiraj jedan dataset instance na formi oji ce ti biti centrani drzac za podatke, iz njega posle mozes da bindujes DIREKTNO kroz {Binding ...} na formi i mozes komotno da izbacis tonu kod kojom rucno pravis binding iz code-behind-a
WPF
Nemoj koristiti foreach nad dataset tabelama da rucno bildujes dropdown iteme. Sve datasets tabele su iterativne i mogu se bindovati direktno
Nemas nikakvu validaciju
Toliko za sada, moram da palim

Ispravi ovo za pocetak pa cemo dalje.
U svakom slucaju mislim da se tvoj codebehind moze skresati za bar 50%
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić