[ dava @ 26.03.2009. 07:27 ] @
Napravio sam da mi je DataGridView bindovan za dvije tabele koje su u relaciji, tj data source im je ovaj query:

Code:

query = "SELECT n.Number, c.Kategory, c.FL_Charge, c.FL_Duration, c.Unit_Charge, " + 
           "c.Unit_Duration FROM Costs c INNER JOIN ColledNumber n ON  c.id_BR = n.id_bR";

daCijene = new OleDbDataAdapter(query, connString);
Cijene = new DataTable();
daCijene.Fill(Cijene);

bSource = new BindingSource();
bSource.DataSource = Cijene ;
dgCosts.DataSource = bSource;


Nakon unosa podataka dataAdapter bi trebao da update-uje samo ove kolone: 'c.FL_Charge, c.FL_Duration, c.Unit_Charge, c.Unit_Duration '
Sledeca komanda vraca exception.

Code:
    
            try
            {
                daCijene.Update(Cijene);
            }
            catch (InvalidOperationException ioe)
            {
                MessageBox.Show(ioe.Message);
            }


Kako da dataAdapteru napravim update comandu?
[ radoica @ 26.03.2009. 17:23 ] @
Za automatsko kreiranje INSERT, UPDATE, ili DELETE komandi se koristi klasa CommandBuilder,
u tvom slucaju OleDbCommandBuilder.

Na ovom linku imas primer http://msdn.microsoft.com/en-u...oledb.oledbcommandbuilder.aspx
[ dava @ 26.03.2009. 19:24 ] @
Prije update-a sam instancirao commandBuilder i rekao mu da generise komandu za update.

Citat:

OleDbCommandBuilder cb = new OleDbCommandBuilder(daCijene);
cb.GetUpdateCommand(false);


na liniji gdje commandBuilder generise komandu za update, desi se exception!
Citat:

cb.GetUpdateCommand(false);

Dynamic SQL generation is not supported against multiple base tables.


Obrati paznju da DataGrid prikazuje podatke iz dvije tabele, a ja treba da update-ujem samo u jednu tabelu (u drugoj su vec uneseni).

[ dava @ 26.03.2009. 20:19 ] @
Pretpostavljam da bih trebao sam napisati komandu za update, pa ako moze neki primjer komande.
[ dava @ 27.03.2009. 12:25 ] @
Evo rjesenja :)

Da bi DataAdapter znao da update-uje (u ovom slucaju) potrebno mu je navesti SelectCommand-u u kojoj ce biti sadrzane sve kolone jedne tabele koju update-ujemo. Bitno je da se navede i primarni kljuc.