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

Dinamička izmena klase

[es] :: .NET :: Dinamička izmena klase

[ Pregleda: 1375 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darmar_pr
Programer

Član broj: 214169
Poruke: 44
...148.91.adsl.dyn.beotel.net.



+2 Profil

icon Dinamička izmena klase31.05.2010. u 10:57 - pre 169 meseci
Da opišem problem:

Data mi je tabela kojoj korisnik može dodavati svoja polja(iz aplikacije). Dakle tabela ima fiksna polja npr: F1, F2,F3 i F4. Na osnovu toga formiram klasu koju koristim u programu sledećeg interfejsa:

interface ITable1
{
int F1{get; set;}
string F2{get; set;}
bool F3{get; set;}
string F4{get; set;}
bool Save();
void Read();
}

Sada korisnik (iz aplikacije) doda novo polje string F5 u Sql tabelu. Trebalo bi izmeniti interface ITable1 i implementaciju tog interfejsa kroz klasu tako da sada bude:

interface ITable1
{
int F1{get; set;}
string F2{get; set;}
bool F3{get; set;}
string F4{get; set;}
bool Save();
void Read();
string F5{get; set;}
}

Takođe treba izmeniti i klasu koja implementira interfejs. Znači , interesujeme, da li je moguće dinamički menjati korisničku klasu kao što je moguće , recimo, dinamički dodavati kontrole na formu. Neki link, uputstvo šta da tražim. Možda refleksija?

Hvala unapred.



 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Dinamička izmena klase31.05.2010. u 21:06 - pre 169 meseci
ne moze to u c#
za to bi ti trebao neki dinamicki jezik (mada c#4 ima neke slicne mogucnosti, npr: dynamic promenljive i ExpandoObject)

zasto ne bi imao neki dictionary za custom polja pa za kljuc uzmes ime polja ("F5"), a za value vrednost tog polja u bazi?
 
Odgovor na temu

Radovan__III
Radovan__III
Beograd

Član broj: 15669
Poruke: 1245
*.dynamic.isp.telekom.rs.



+26 Profil

icon Re: Dinamička izmena klase31.05.2010. u 21:36 - pre 169 meseci
najverovatnije da nisi na pravi nacin pristupio problemu, nego hoces preko kolena da resis nesto time sto zelis da prosiris klasu. Da mozda nisi na pravi nacin definisao bazu ?
Aj sad svi u biblioteku da nesto pojedemo i popijemo ...
--------------------------------
Knjigovodstvo

 
Odgovor na temu

darmar_pr
Programer

Član broj: 214169
Poruke: 44
...148.91.adsl.dyn.beotel.net.



+2 Profil

icon Re: Dinamička izmena klase31.05.2010. u 22:36 - pre 169 meseci
Citat:
Radovan__III: najverovatnije da nisi na pravi nacin pristupio problemu, nego hoces preko kolena da resis nesto time sto zelis da prosiris klasu. Da mozda nisi na pravi nacin definisao bazu ?




Izgleda da nisam najbolje objasnio problem.
Pr: tabela KLIJENTI ima neka fiksna polja:
1. ID
2. NAZIV
3. ADRESA
4. GRAD

To su polja koja sam ja definisao. Sada dođe korisnik koji želi da uz ova četiri polja doda još neko polje (recimo PIB). Iz programa mu treba biti omogućeno da sam doda to polje u tabelu(to nije bogzna koliko komplikovan kod), zatim da na formi koja radi sa zapisima iz tabele KLIJENTI pored ova 4 postojeća polja bude dinamički kreirano i polje PIB(i to sam uradio, this.Controls.Add(myControl), definisao properties, evente, sve dinamički), dalje da korisnik sam određuje polja koja ulaze u razne dokumente(prijemnice, otpremnice...) itd..Trebalo bi da program bude što je moguće više prilagodljiv različitim korisnicma.

Čisto me interesuje, doslednosti radi , da li je moguće dinamički proširiti klasu kako sam naveo u prvom postu. U stvari, imam rešenje za taj problem ali mi deluje skarabudzeno.Recimo upis novog klijenta u tabelu vršim delom koristeći CKlient.Write() , iz klase, ali nova polja moram naknadno da dodajem sa više INSERT-VALUE klauzula u bazu.. Dakle, to radi ali nije lepo za oko. Verovatno, da se to i ne može realizovati kako sam zamislio.

 
Odgovor na temu

Radovan__III
Radovan__III
Beograd

Član broj: 15669
Poruke: 1245
*.dynamic.isp.telekom.rs.



+26 Profil

icon Re: Dinamička izmena klase31.05.2010. u 22:50 - pre 169 meseci
Evo na brzinu

tabela1:
id , naziv , adresa , grad



tabela2:
id , kolona , vrednost


I cao djaci, ako hoces totalno dinamicnu varijantu. Ni ovo nije najsrecnija varijanta ali ako hoces dinamicno tako ti je
polje kolona se odnosi na bilo koju kolonu koju korisnik zeli

Dinamicko menjanje tabela u bazi ti odmah utice i na domenske objekete i na mnogo mnogo drugih stvari sto ako pravis iole veci program ( vise tabela u bazi ) imaces velike probleme
Aj sad svi u biblioteku da nesto pojedemo i popijemo ...
--------------------------------
Knjigovodstvo

 
Odgovor na temu

[es] :: .NET :: Dinamička izmena klase

[ Pregleda: 1375 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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