Ti ringrazio per la tua risposta ora ti illustro meglio quello che faccio.
Allora il mio programma è in WPF il quale ha il compito di passare delle informazioni di base ad una classe che poi elaborate opportunamente con altri dati provenienti dal database mi restituisce una datatable, la quale viene poi mostrata in una datagridview e se l'utente lo desidera salva i dati in una tabella del database. Il database (pultroppo non per mia scelta... grrrr grrr ) è un
Access
.
Solitamente quando devo fare il salvataggio di una datatable in un database lo faccio utilizzando un command con un ciclo for che mi cicla tutta la datatable e ma la salva..però dato che voglio imparare qualcosa in più ho pensato di utilizzare un dataadapter in modo che si occupassa lui di fare il tutto.
Quindi dopo alcune ricerche ho creato il metodo che illustro di seguito
[code]
Dim ds As DataSet
Dim adapter As Odbc.OdbcDataAdapter
Using connection As New Odbc.OdbcConnection("dsn=pimm_master") ' connection.Open()
adapter = New Odbc.OdbcDataAdapter("SELECT VLFR_MANCATO_INSERIMENTO_RAPPORTO.* FROM VLFR_MANCATO_INSERIMENTO_RAPPORTO;", connection)
Dim cb As New Odbc.OdbcCommandBuilder(adapter)
adapter.InsertCommand = cb.GetInsertCommand
adapter.DeleteCommand = cb.GetDeleteCommand
adapter.UpdateCommand = cb.GetUpdateCommand
adapter.Update(ds, "VLFR_MANCATO_INSERIMENTO_RAPPORTO") ds.AcceptChanges()
connection.Close()
End Using
[/code]
Il problema è che comunque l'update non funziona e non capisco il perchè in quanto non mi restituisce nessun errore, In principio pensavo che fosse il commandbuilder ad avere problemi ma poi ho notato (in debug) che le query di Updatae, Insert e Delete le crea correttamente. Sembra quasi che il problema sia nella connessione come se non fosse connesso al database.
Dove sto sbagliando?
Prassi che ho seguito:
Problema: mi viene passato una datatable i cui dati devono essere inseriti in una prestabilita tabella di un database
1. Creo un dataset
2. Creo un dataAdapter
3. Creo e apro una connessione
4. Associo al mio adapter il command di SELECT
5. Utilizzo commandbuilder per crearmi le query di Update, Insert e Delete
6. Aggiungo un tabella al mio dataset ?????
[code]
MioDataset.Tables.Add ("NomeTb")
[/code]
7. Devo popolare la tabella del dataset con il codice
[code]
MioDataset.Tables("NomeTb").load (DataTablePassatami.CreateDataReader)
[/code]
8. Faccio l'updete al database dal dataset
[code]
adapter.Update(MioDataset, "NomeTb")
[/code]
E' questa la prassi ho sto sbagliando qualcosa? Mi sono perso qualche passaggio?
Grazie del vostro aiuto.