93 messaggi dal 28 marzo 2004
ciao a tutti!
ho creato un win form con 2 griglie in rappresentanza di 2 tabelle relazionate tra loro.
il mio problema è che quando effettuo l'update del dataSet mi viene restituito questo errore:

DataColumn 'DE_GRUPPO' mancante nella DataTable 'TBBLOCCHI' per la SourceColumn 'DE_GRUPPO'.

La cosa strana è che nella mia tabella TBblocchi non ho nessun campo DE_GRUPPO, che invece è presente nella tabella TBgruppi.
definizione delle tabelle:
"TBGRUPPI"  (
      "COD_GRUPPO" VARCHAR(50) NOT NULL WITH DEFAULT 'codice' , 
      "COD_PREVENTIVO" VARCHAR(20) NOT NULL WITH DEFAULT '0' , 
      "DE_GRUPPO" VARCHAR(250) , 
      "VL_PREZZO" DOUBLE , 
      "VL_QUANTITA" INTEGER NOT NULL WITH DEFAULT 1 )   


TBBLOCCHI"  (
      "COD_BLOCCO" VARCHAR(20) NOT NULL WITH DEFAULT '0' , 
      "DE_BLOCCO" VARCHAR(255) , 
      "COD_GRUPPO" VARCHAR(50) NOT NULL WITH DEFAULT '0' , 
      "COD_PREVENTIVO" VARCHAR(50) NOT NULL WITH DEFAULT '0' )   

Questo è il mio codice:
// data adapter tabella principale
String sqlSelectGruppi = "SELECT COD_PREVENTIVO,COD_GRUPPO, DE_GRUPPO,VL_PREZZO, VL_QUANTITA "+" FROM TBGRUPPI WHERE COD_PREVENTIVO='" + codPrev + "'";
masterDataAdapter = new OleDbDataAdapter(sqlSelectGruppi, conn
masterDataAdapter.Fill(data, "TBGRUPPI");
// data adapter tabella collegata
string sqlSelectBlocchi = "SELECT COD_PREVENTIVO, COD_GRUPPO,COD_BLOCCO,DE_BLOCCO " + " FROM TBBLOCCHI WHERE COD_PREVENTIVO='" + codPrev + "'";
detailsDataAdapter = new OleDbDataAdapter(sqlSelectBlocchi, conn);
detailsDataAdapter.Fill(data, "TBBLOCCHI");
// definizione relazione, composta da 2 campi
DataRelation relation = new DataRelation("gruppi_blocchi",new System.Data.DataColumn[] { data.Tables["TBGRUPPI"].Columns["COD_PREVENTIVO"],
data.Tables["TBGRUPPI"].Columns["COD_GRUPPO"]},new System.Data.DataColumn[] { data.Tables["TBBLOCCHI"].Columns["COD_PREVENTIVO"], data.Tables["TBBLOCCHI"].Columns["COD_GRUPPO"]});
data.Relations.Add(relation);
// creazione data source per i 2 datagrid
masterBindingSource.DataSource = data;
masterBindingSource.DataMember = "TBGRUPPI";
detailsBindingSource.DataSource = masterBindingSource;
detailsBindingSource.DataMember = "gruppi_blocchi";
gridGruppi.DataSource = masterBindingSource;
gridBlocchi.DataSource = detailsBindingSource;
// nuva riga tabella principale
newRowGruppi = data.Tables["TBGRUPPI"].NewRow();
newRowGruppi["COD_PREVENTIVO"] = this._CodPreventivo;
newRowGruppi["COD_GRUPPO"] = codGruppo;
newRowGruppi["DE_GRUPPO"] = txtDescrGruppo.Text;
newRowGruppi["VL_PREZZO"] = prezzoValue;
newRowGruppi["VL_QUANTITA"] = quantValue;
data.Tables["TBGRUPPI"].Rows.Add(newRowGruppi);
// nuva riga tabella collegata
newRowBlocchi = data.Tables["TBBLOCCHI"].NewRow();
newRowBlocchi["COD_PREVENTIVO"] = this._CodPreventivo;
newRowBlocchi["COD_GRUPPO"] = 'codGruppo';
newRowBlocchi["COD_BLOCCO"] = 'codBlocco';
newRowBlocchi["DE_BLOCCO"] = 'deBlocco';
data.Tables["TBBLOCCHI"].Rows.Add(newRowBlocchi);
masterDataAdapter.Fill(data, "TBGRUPPI");
detailsDataAdapter.Fill(data, "TBBLOCCHI");
// aggiornamento del database
masterDataAdapter.Update(data, "TBGRUPPI");
masterDataAdapter.Update(data, "TBBLOCCHI");


ho copiato il codice che utilizzo, anche se in realtà è suddiviso in diversi eventi.
Avete quelche idea?
grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.