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

DataSet i DataRelation problem snimanja dve tabele

[es] :: .NET :: .NET Desktop razvoj :: DataSet i DataRelation problem snimanja dve tabele

[ Pregleda: 2003 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZoranV
Zoran Vukovic

Član broj: 124559
Poruke: 29
*.dynamic.sbb.rs.



+1 Profil

icon DataSet i DataRelation problem snimanja dve tabele15.04.2011. u 06:57 - pre 158 meseci
Pokušavam da napravim relaciju dve tabele i to uspeva, ali snimanje nikako. Mogu da snimim jednu (Radnici) ali drugu (Satnicu) ne javlja grešku
Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
Evo koda

Code (csharp):
        OleDbConnection konekcija;
        OleDbDataAdapter daR;
        OleDbDataAdapter daS;
        DataSet ds;
        BindingManagerBase bmb;
        BindingManagerBase bmb1;
       
        private void Form1_Load(object sender, EventArgs e)
        {
            konekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = Plata.mdb");
            konekcija.Open();
            OleDbCommand KomandaR = new OleDbCommand("SELECT * FROM Radnici ORDER BY ID;", konekcija);
            daR = new OleDbDataAdapter();
            OleDbCommand KomandaS = new OleDbCommand("SELECT * FROM Satnica;", konekcija);
            daS = new OleDbDataAdapter();
            ds = new DataSet();
            daR.SelectCommand = KomandaR;
            daR.Fill(ds, "Radnici");
            daS.SelectCommand = KomandaS;
            daS.Fill(ds, "Satnica");
            DataRelation RelRadSat = new DataRelation("RadSat",ds.Tables["Radnici"].Columns["JMBG"], ds.Tables["Satnica"].Columns["JMBG"],true);
            ds.Relations.Add(RelRadSat);
            bmb =BindingContext[ds,"Radnici"];
            bmb1 = BindingContext[ds, "Satnica"];
            txtPrezime.DataBindings.Add("Text",ds,"Radnici.Prezime");
            txtIme.DataBindings.Add("Text", ds,"Radnici.Ime");
            txtSatRed.DataBindings.Add("Text", ds, "Radnici.RadSat.SatRed1");
            txtSatBol.DataBindings.Add("Text", ds, "Radnici.RadSat.SatBolov1");
            txtSatBo.DataBindings.Add("Text", ds, "Radnici.RadSat.SatGO1");
        }

        private void btnNazad_Click(object sender, EventArgs e)
        {
            bmb.Position--;
        }

        private void btnNapred_Click(object sender, EventArgs e)
        {
            bmb.Position++;
        }
       
        private void btnSnimi_Click(object sender, EventArgs e)
        {
            OleDbCommandBuilder SnimiR = new OleDbCommandBuilder(daR);
            daR.Update(ds, "Radnici");
            OleDbCommandBuilder SnimiS = new OleDbCommandBuilder(daS);
            daS.Update(ds, "Satnica");
            daR.UpdateCommand = SnimiR.GetUpdateCommand();
            daS.UpdateCommand = SnimiS.GetUpdateCommand(); //ovde javlja grešku      
            Application.Exit();
        }


[Ovu poruku je menjao mmix dana 15.04.2011. u 12:49 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: DataSet i DataRelation problem snimanja dve tabele15.04.2011. u 12:19 - pre 158 meseci
Problem nije to relacije, problem je bas onaj koji pise u gresci. Da bi OleDbCommandBuilder mogao da napravi update komandu mora da postoji kljuc koji identifikuje red (posto on ide u WHERE kaluzulu).

Koja polja u obe tabele su ti kljucevi? Pretposvljam da je kljuc u radnik JMBG a koji je kljuc u satnice? Moze i kompozitni (iz vise polja)



I btw, gledaj da portujes svoje aplikacije sa Accessa na nesto drugo (compact ili express ili nesto trece)
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ć
 
Odgovor na temu

ZoranV
Zoran Vukovic

Član broj: 124559
Poruke: 29
*.dynamic.sbb.rs.



+1 Profil

icon Re: DataSet i DataRelation problem snimanja dve tabele15.04.2011. u 13:34 - pre 158 meseci
U obe tabel je ključ JMBG.

Zadnji red
Citat:
I btw, gledaj da portujes svoje aplikacije sa Accessa na nesto drugo (compact ili express ili nesto trece)

Nisam razumeo.

[Ovu poruku je menjao mmix dana 15.04.2011. u 14:54 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: DataSet i DataRelation problem snimanja dve tabele15.04.2011. u 13:53 - pre 158 meseci
Access je zastareo i nije vise podrzan kao RDBMS za desktop aplikacije.


Drugo, ako imas bar dve satnice za jednog radnika JMBG ne moze da bude kljuc za satnice (jer ces imati dva reda sa istim kljucem)
Sem toga izbegavaj JMBG kao kljuc, nije jedinstven.
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ć
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: DataSet i DataRelation problem snimanja dve tabele

[ Pregleda: 2003 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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