Napravio sam prosto testni primer da ispitam problem sa kojm sam se susreo.
On se sastoji od DataSeta napravljenog u dizajneru i jedne forme.
Na DataSet-u sam napravio dve tabele MasterTable i DetailTable i jednu relaciju između njih po odovarajućem ključu.
Na formi se nalaze dva grida MasterGrid i DetailGrid. Na njoj su i MasterBindingSource i DetailBindingSource koji su postavljeni kao DataSource na odgovarajućim gridovima.
MaserBindingSource kao DataSource ima sam DataSet a kao dataMember je navedeno ime tabele koja je master.
Za DetailBindingSource je kao DataSource naveden MasterBindingSource a kao DataMember je navedena relacija između MasterTable i DetailTable.
Sve ovo sam napravio u Dizajneru.
Inicijalizacija forme puni tabele iz baze i sve to radi kako treba. Kad se pokrene apliakciaj oba grida prikazuju podatke iz odgovarajućih tabela, s tim, da, kako se kursor pomera po master gridu, u detail gridu se pokazuju slogovi koji po relaciji odgovaraju slogu iz master tabele. To je sve očekivano i nema prolema sa tim.
E sad, meni u stvari treba da u realnoj apliakciji sve ovo napravim u kodu. Osim gridova na formi, sve ostalo moram rogramski da podesim. Tu se javlaj problem. Kada programski podesim sve isto kao što sam opisao da sam uradio u Dizajneru, relaciajizmeđu tabela ne radi i u DetailGrid se ne prikazuju nikakvi podaci (grbid izgleda kao da mu je DataSource = nil).
Uspeo sam da utvrdim tačno mesto gde se javlaj problem: ako u Dizajneru DetailBindingSource.DataSource ostavim nepodešeno, a popunim ga programski, to neće da radi. Ako DetailBinfogSource.DataSource u dizajneru povežem sa MasterBindingSource a ostavim nepodešeno DetailBinfogSource.DataMember i onda programski u DataMember upišem naziv relacije, to radi.
Iz nekog razloga, ako DataSet na bindingSource nije povezan u dizajneru, povezivanje programski (na Load forme) ne radi.
Da li se neko susretao sa ovakvim problemom? Pošto se radi o prilično banalnoj stvai koja j epotrebna u skoro svakoj apliakciji, pretpostavljam da ja negde grešim, samo što ne mogu da uhvatim u čemu je problem. Aplikacija dakle ne prijavljuje nikakvu grešku, samo DetailGrid ne prikazuje podatke i izgleda kao da nije povezan ni sa kakvim DataSource-om.