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

ADO.NET CurrencyManager i ListBox kontrola, problemchic...

[es] :: .NET :: ADO.NET CurrencyManager i ListBox kontrola, problemchic...

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

era1

Član broj: 77875
Poruke: 155
..njuel-bg.customer.sbb.co.yu.



Profil

icon ADO.NET CurrencyManager i ListBox kontrola, problemchic...26.02.2006. u 16:33 - pre 220 meseci
Dakle ovako :
imam listBox na formi koji je povezan sa tabelom u bazi. Zatim imam tri dugmeta: ADD, REMOVE i REFRESH .

Program redi sledece:

ADD = doda podatak u bazu (to radi)
REMOVE = obrishe podatak iz baze (takodje radi)
REFRESH = osvezi ListBox ( pomocu CurrencyManager.Refresh() i DataAdapter.Fill() )

problem je sto REFRESH posle ADD radi kako treba, i doda zapis u ListBox, ali posle REMOVE ne radi kako treba i nece da ukloni zapis iz list box-a (iako ga ukloni iz baze)!!!

Sta nije u redu?

Pozdrav svima...
 
Odgovor na temu

mirdraal
Ivan Mladenovic
Tigar A.D. / Senior Software Developer
Balkan

Član broj: 38001
Poruke: 82
195.252.107.*

Sajt: www.linkedin.com/in/ivanm..


Profil

icon Re: ADO.NET CurrencyManager i ListBox kontrola, problemchic...27.02.2006. u 12:04 - pre 220 meseci
Citat:
era1: Dakle ovako :
imam listBox na formi koji je povezan sa tabelom u bazi.


Kako je povezan sa bazom ?
Preko dataset-a ili na neki drugi nacin .
Ako je preko DataSet-a onda je i logicno da ga prikazije posle brisanja
jer podatak jos uvek postoji u DataSet-u samo je markiran za brisanje .
U tom slucaju traba da ili posle brisanja ponovo ucitas DataSet ili da eksplicitno
obrises doticni podatak iz dataset-a ili da koristis recimo
Code:
DataSetxx.DataTableyy.DefaultView.RowStateFilter = .... 

da bi filtrirao slogove koje zelis da prikazes
Ima mnogo nacina , sve zavisi sta ti treba .



Ako kaniš pobijediti , ne smiješ izgubiti.
 
Odgovor na temu

era1

Član broj: 77875
Poruke: 155
..njuel-bg.customer.sbb.co.yu.



Profil

icon Re: ADO.NET CurrencyManager i ListBox kontrola, problemchic...27.02.2006. u 15:54 - pre 220 meseci
Povezan je preko dataseta.

Pokusao sam da ucitam ponovo dataset pomocu DataAdapter.Fill(dataset, "TABELA") pa nije pomoglo, zatim sam pokusao da prvo ocistim dataset DataSet.TABELA.DataRows.Clear() pa da onda odradim Fill ali nije pomoglo.

Pa me interesuje jel ima jos neki nacin da ucitam dataset ?

Posebno ne kontam jednu stvar:
Metoda AcceptChanges() objekta DataSet bi trebala da omoguci prihvatanje promena u dataSetu (znaci da red koji je markiran za brisanje obrishe). Zatim kada pozovem CurrencyManager.BindingContext.refresh() treba sve te promene da prenese na kontrlole na formi. Ali ni to ne radi...

pozdrav...
 
Odgovor na temu

mirdraal
Ivan Mladenovic
Tigar A.D. / Senior Software Developer
Balkan

Član broj: 38001
Poruke: 82
195.252.107.*

Sajt: www.linkedin.com/in/ivanm..


Profil

icon Re: ADO.NET CurrencyManager i ListBox kontrola, problemchic...28.02.2006. u 08:46 - pre 220 meseci
pozabavio sam se malo problemom i napravio jedan primer .
primer je za access Northwind bazu i tablu Categories , zbog jednostavnosti
Konekcija , Adapter i dataset su generisani a povezivanje ListBox-a je preko designera .

Ovde ti refresh i ne treba , sve radi i bez toga


U initializecomponents metodi forme ide sledeci kod ( inace genrisan u dizajneru )

Code:

this.listBox1.DataSource = this.dataSet11.Categories;
            this.listBox1.DisplayMember = "CategoryName";
            this.listBox1.Location = new System.Drawing.Point(36, 24);
            this.listBox1.Name = "listBox1";
            this.listBox1.Size = new System.Drawing.Size(268, 160);
            this.listBox1.TabIndex = 0;
            this.listBox1.ValueMember = "CategoryID";


Glavni deo koda za brisanje i dodavanje je

Code:

static void Main() 
        {
            Application.Run(new Form1());
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {
            this.oleDbDataAdapter1.Fill(this.dataSet11);
        }

        private void buttonAdd_Click(object sender, System.EventArgs e)
        {
            //Add new Category
            DataSet1.CategoriesRow r;
            r = this.dataSet11.Categories.AddCategoriesRow("New Cat","NEw CAT DES");
            this.oleDbDataAdapter1.Update(dataSet11);
            this.dataSet11.AcceptChanges();
            
            
            
        }

        private void buttonRemove_Click(object sender, System.EventArgs e)
        {
            int index ;
            index = this.listBox1.SelectedIndex;
            this.dataSet11.Categories.Rows[index].Delete();
            this.oleDbDataAdapter1.Update(this.dataSet11);
            this.dataSet11.AcceptChanges();
        }
    }
}


Ako kaniš pobijediti , ne smiješ izgubiti.
 
Odgovor na temu

era1

Član broj: 77875
Poruke: 155
..njuel-bg.customer.sbb.co.yu.



Profil

icon Re: ADO.NET CurrencyManager i ListBox kontrola, problemchic...28.02.2006. u 11:42 - pre 220 meseci
To je to!

Ovaj red je nedostajao:

this.dataSet11.Categories.Rows[index].Delete();

Hvala puno, problem reshen.
Pozdrav!!!
 
Odgovor na temu

[es] :: .NET :: ADO.NET CurrencyManager i ListBox kontrola, problemchic...

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

Postavi temu Odgovori

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