Ciao a tutti, so bene che il discorso è già stato trattato tante volte... ma io non ne esco!
Sto iniziando ad approcciarmi al VB.NET e tutto il mio entusiasmo sta lottando da una settimana con la mia incapacità nell'inserire, aggiornare o eliminare record di un tabella di access!![]()
Da quello che ho potuto capire dopo aver modificato i dati in una windowsForm, occorre utilizzare il dataadapter (che fa da ponte tra il dataset e il database).
Il dataadpter puà essere utilizzato in "associazione" al commandBuilder, che si preoccupa di generare le istruzioni SQL (per una sola tabella) o indicando manualmente il comando SQL.
Nel mio caso specifico ho, in un database access2000, una tabella
IdProdotto (contatore)
Prodotto (Testo)
Note(Memo)
IdUm (Numerico, chiave esterna alla tabella UnitaMisura)
IdProdotto_tab (Numerico, chiave esterna ad un'altra tabella).
Ho creato una WindowsForm e su caricamento della stessa ho caricato il dataset DSProdotto. Ho riempito una ListBox e ho "sincronizzato" le textbox e combobox della mia Windows form al variare del valore selezionato nella listbox .
Ora Quando clicco sul pulsante nuovo, disabilito la list box e pongo tutte le mie textBox e comboBox pari a "".
faccio le mie modifiche (cioè scrivo nei campi),
clicco su salva (bottone)
e.... Non succede niente!
Ecco il codice di Salva
sql = "select * from prodotto "
strConn = Start.GetStrDataBase
Dim DaProdotti As New OleDb.OleDbDataAdapter(sql, strConn)
'creo il command builder , lo istanzio e gli assegno il Da
Dim ProdottoBuilder As New OleDb.OleDbCommandBuilder(DaProdotti)
Dim tblProdotto As New DataTable("prodotto") 'creo un datatable
DaProdotti.Fill(tblProdotto) 'lo riempio
Dim newRecord As DataRow 'creo una nuova riga
newRecord = tblProdotto.NewRow()
newRecord.Item("Prodotto") = tXTProdotto.Text 'assegno i valori
newRecord.Item("Note") = TxtNote.Text
newRecord.Item("IdUm") = CboIdUm.SelectedValue
newRecord.Item("IdProdotto_tab") = CboIdProdotto_tab.SelectedValue
newRecord.Item("calorie") = ""
tblProdotto.Rows.Add(newRecord) 'aggiungo la riga al datatatable
'creo comando INSERT
DaProdotti.InsertCommand = ProdottoBuilder.GetInsertCommand()
' DaProdotti.DeleteCommand = ProdottoBuilder.GetDeleteCommand
' DaProdotti.UpdateCommand = ProdottoBuilder.GetUpdateCommand
DaProdotti.Update(tblProdotto)
DSProdotti.AcceptChanges()
Arrivati a DaProdotti.update (tblProdotto) mi dà il seguente errore:
Errore di sintassi nell'istruzione INSERT INTO....
Allora ho provato nell'altro modo:
In questo caso nessun errore, ma nessuna variazione nella tabella del Datbase.
Dove sbaglio? Qualcuno mi può aiutare???
Grazie in anticipo!
PS ma come si fa a inserire il codice formattato come in Visual studio? E' la prima volta che scrivo.... Ciao Ap