Započni novu temu Odgovori na temu  [ 4 Posta ] 
Autoru Poruka
 Tema posta: Delete() metoda klase
PostPoslato: 18.09.2004. 10:53:13 

Pridružio se: 15.11.2001. 21:52:55
Postovi: 242
Lokacija: Sabac
Godina: Dipl.
Smer: IS
Pitanje je verovatno trivijalno za sve koji su se ovim vec bavili. Elem, jedan deo forme mi je objekat klase DataGrid, dataGrid1, ciji je source objekat klase DataTable, tabelaCekova. Iznad tog datagrida imam dva dugmeta. Jedno koristim za ubacivanje novog reda u tabelu, a drugo za izbacivanje. Navescu dogadjaje koji su vaze i za jedno i za drugo dugme kada se klikne na njih, mada mislim da je problem samo kod dugmeta za izbacivanje. Elem dogadjaj za kada se klikne na Ubaci:
Kod:
private void btn_UbaciCek_Click(object sender, System.EventArgs e)
      {
         try
         {   
            DataRow red = tabelaCekova.NewRow();
            red["Br"] = 0;
            red["Mesec"] = "/";
            red["Iznos"] = 0;
            tabelaCekova.Rows.Add(red);
         }
         catch (System.Data.ConstraintException exc)
         {
            MessageBox.Show("Ne mozete dodati novi red dok ne popunite prethodni");
         }
      }

Dogadjaj koji se "okida" kada se klikne na Izbaci:
Code:
Kod:
private void btn_IzbaciCek_Click(object sender, System.EventArgs e)
      {
         try
         {
            tabelaCekova.Rows[dataGrid1.CurrentRowIndex].Delete();
         }
         catch (System.IndexOutOfRangeException ex)
         {
            MessageBox.Show("Ne mozete brisati redove ako ih nema.");
             }
      }

Problem je sto kada se izvrsi Delete() za obelezeni red, on se meni izbrise totalno, ne mogu vise da pristupim, a koliko sam ja u dokumentaciji razumeo on bi i dalje trebalo da postoji u DataRowCollection sve dok se ne izvrsi AcceptChanges() ?? Ja sam se nadao da ce on i dalje negde ostati, a da ce mu se samo promeniti RowState u Deleted, jer mi to treba kasnije da za azuriranje baze, da bih znao koje redove da izbrisem? Kako ovo da resim?


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 18.09.2004. 12:23:46 
Moderator
Korisnikov avatar

Pridružio se: 06.05.2002. 15:33:21
Postovi: 4745
Godina: Dipl.
Smer: IS
Nisam bas sigurna da li sam shvatila bas kako treba tvoj problem. Tebi je potrebno da sacuvas novo stanje cekova nakon operacije sa datom tabelom? Dakle ako obrises i dopises neki cek da posle sacuvas kao takvo, promenjeno, stanje u bazi? Ako stvari tako stoje onda razmisli, ti kad obrises neki red, ti si ga obrisao, i tacka. Nema on tu sta vise da cuva, sem ako ti nisi unapred tako implementirao tabelu. Uostalom, sta ce ti red koji si obrisao posle? Da brises taj slog iz baze? Ako je to slucaj onda mozes da napravis novu metodu Delete koja ce ti u tabeli obrisati cek samo vizuelno, ali zapamtiti podatak o tom ceku u recimo nekoj pomocnoj kolekciji (ili promeniti RowState). Posle u AcceptChanges kazes Obrisi mi cekove iz te pomocne kolekcije.

Da li smo se razumeli ili nismo? Ajde, ako nismo ti daj vise info, taman da se malo potsetim jave, nisam je takla mesecima... :)


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 18.09.2004. 13:01:07 

Pridružio se: 15.11.2001. 21:52:55
Postovi: 242
Lokacija: Sabac
Godina: Dipl.
Smer: IS
Tja, ja sam se nadao da sam bio jasan, ali nazalost kada su ovakvi problemi onda je vrlo tesko objasniti gde koci, a da bude jasno. Izvinjavam se.
Elem, prvo rec je o C#, ne o Javi.
Drugo da pokusam da razjasnim sta zelim. Imam jedan DataTable koji se azurira u formi, na kojoj imam dva dugmeta ubaci nov red i izbaci obelezen red. procedura za tva dugmeta su gore navedene. I sad lepo to radi kada ja ubacim nekoliko redova i prosetam sa foreach kroz sve redove on mi ih sve prikaze, i svi redovi imaju status Added. Sad drugi scenario: pre nego sto povezem DataTable za DataGrig, ja ubacim rucno i neki red. I kada pokrenm formu i izmenim taj na startu ubaceni red i izlistam sve redove, ocekujem da ce taj izmenjeni red imati drugi RowState, ali ne, i dalje je Added. Ako taj red izbacim, pomocu onog dugmeta Izbaci, i kad prodjem sa foreach kroz sve redove, on se nigde ne pojavljuje, a ja sam ocekivao da ga vidim i dalje u DataTable samo da ima RowState Deleted. Treba mi taj status jer cu na osnovu njega znati sta da radim sa tim cekom, da li da ga brisem iz baze, menjam i sl.


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 18.09.2004. 21:02:21 

Pridružio se: 15.11.2001. 21:52:55
Postovi: 242
Lokacija: Sabac
Godina: Dipl.
Smer: IS
resio sam problem zahvaljujuci jednom ljubaznom kolegi :)


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 4 Posta ] 


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 7 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Copyleft FONForum 2001-2014 | Powered by phpBB © phpBB Group