Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    44

    Aggiornamento Database Access con Dataadapter

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    44
    Nessuno riesce a darmi qualche dritta?

  3. #3
    Hai una colonna che si chiama Note. Questo è un nome riservato per visual studio.
    Per risolvere il problema metti una [ in prodottobuilder.quoteprefix e un ] in prodottobuilder.quitesuffix
    In questo modo tutti i comandi sql avranno i nomi di colonna rinchiusi nelle parentesi quadtrate (tipo Select [campa1], [campo2].... From nometabella): questo dovrebbe risolverti il problema.
    Oppure cambia nome della colonna Note.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    44
    Ci provo e ti faccio sapere, nel frattempo infinite grazie per l'attenzione!!!!!
    Ciao
    Ap

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    44
    Sei un Genio!!!!
    Grazie, funziona.
    Ap

  6. #6
    Originariamente inviato da Ap13
    Sei un Genio!!!!
    Grazie, funziona.
    Ap
    lo so ...










Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.