10 messaggi dal 04 ottobre 2006
Ciao,
aggiungo delle righe da un dataset ad un altro e poi ho bisogno che il dataset che ho aggiornato vada ad aggiornare anche il db, ma non riesco, non mi da nessun errore, l'Update() mi ritorna 0. Sotto ho riportato il codice che utilizzo.
Grazie

SqlConnection conn = new SqlConnection(strClienteCon);
                    conn.Open();
                    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM TabLUL", conn);
                    SqlCommandBuilder scb = new SqlCommandBuilder(sda);
                    sda.InsertCommand = scb.GetInsertCommand();
                    //sda.UpdateCommand = scb.GetUpdateCommand();
                    //sda.DeleteCommand = scb.GetDeleteCommand();
                    DataSet dsWeb = new DataSet();
                    sda.FillSchema(dsWeb, SchemaType.Source);
                    sda.Fill(dsWeb, "ValoriClasseDocumentale");
                    
                    for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
                    {
                        dsWeb.Tables["ValoriClasseDocumentale"].ImportRow(ds.Tables[0].Rows[i]);
                        dsWeb.Tables["ValoriClasseDocumentale"].Rows[i].EndEdit();
                        dsWeb.AcceptChanges();
                    }
                    
                    int rowUpdate = sda.Update(dsWeb.Tables["ValoriClasseDocumentale"]);
                    conn.Close();
                    conn.Dispose();
Ciao,

elimina la chiamata ad AcceptChanges. Questo metodo infatti serve per flaggare tutte le righe a Unmodified.

A presto,
m.
10 messaggi dal 04 ottobre 2006
fatto, ma non cambia niente
Le righe che importi da ds.Tables[0] in che stato sono? Unchanged? Cosa ti aspetteresti? delle insert?

Se sì, allora a valle della import, puoi richiamare il metodo SetAdded
10 messaggi dal 04 ottobre 2006
Sì, mi aspetto di trovarmi il db con n righe aggiunte.
Ho controllato il dataset aggiornato dopo l'ImportRow e ha le righe nuove, ma poi non si aggiorna il db.
Il SetAdded lo aggiungo prima dell'importrow, ma fuori dal ciclo for o dentro?
Dopo dsWeb.Tables["ValoriClasseDocumentale"].Rows[i].EndEdit() (che non capisco perche usi, sincerametne, dentro al ciclo.

Ciao,
m.
10 messaggi dal 04 ottobre 2006
Grande!!!
Funziona, ho tolta anche .EndEdit() come mi ha consigliato e adesso funziona.
Grazie 1000!!!
Ciao
Alberto
10 messaggi dal 04 ottobre 2006
Ri-Ciao, ho ancora un problemino.
Sopra tutto il codice postatao prima ho aggiunto il seguente codice
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
                    {
                        ds.Tables[0].Rows[i]["codpath"] = iCodPath;
                        ds.Tables[0].Rows[i]["dirfirma"] = sDirFirma;
                    }


dovrei modificare il dataset di partenza, ma mi viene generata la seguente eccezione: "È possibile chiamare SetAdded e SetModified sui DataRow con DataRowState Unchanged." alla riga dove è stato aggiunto il SetAdded();

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.