Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Visual basic 2005] errore comando salva in caso di eliminazione o modifica di recor

    Salve a tutti
    Ho un altro problema. Ho un'applicazione collegata ad un database. Quando ho collegato la form al database mi si sono creati automaticamente i comandi salva, aggiungi nuovo, elimina, sposta avanti, sposta indietro, vai all'ultimo e trorna al primo.
    Provando il comando salva, ho notato che quando vado a aggiungere un record nel database, non ci sono problemi: anche dopo la chiusura dell'applicazione, il record da me aggiunto rimane. Quando io invece vado a eliminare o a modificare un record mi appare un messaggio di errore che mi dice: "Update richiede un DeleteCommand valido se l'insieme DataRow viene passato con righe eliminate." se elimino un record e: "Update richiede un DeleteCommand valido se l'insieme DataRow viene passato con righe modificate." se ne modifico.
    Inoltre mi si seleziona questa riga di comando:

    Me.Foglio1TableAdapter.Update(Me.Database11DataSet .Foglio1)

    Mi otete dare una mano a risolvere questo problema?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Indica il linguaggio, non l'ambiente, nel titolo.
    Questo l'ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    12
    Succede la stessa cosa anche a me: riesco a inserire un nuovo record ma non riesco a cancellare o modificare i dati dei record esistenti.

    Sono alle prime armi con vb2005 e questa cosa è un po' di giorni che mi sta facendo impazzire!

    Ho inserito nella form una DataGridView dove seleziono un record e poi tramite un bottone cerco di cancellare quel record.

    Questo è il codice:

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    dim RIGA = Tab1DataGridView.CurrentRow.Index
    Dim oldREC As ProvaDataSet.Tab1Row = Me.ProvaDataSet.Tab1.Rows(RIGA)
    oldREC.Delete()
    Me.Validate()
    Me.Tab1BindingSource.EndEdit()
    Me.Tab1TableAdapter.Update(Me.ProvaDataSet.Tab1)
    End Sub

    E la risposta è sempre la stessa: "Update richiede un DeleteCommand valido se l'insieme DataRow viene passato con righe eliminate."

    Chi, per favore, mi da una mano?

    Grazie!!!!!

  5. #5
    Se il tableadapter è stato generato dal wizard con tutta probabilità la table presente nel database non ha una chiave primaria univoca (il dataadapter deve essere in grado di restituire, ad ogni esecuzione del command numero righe aggiornate = 1)
    Questo potrebbe succedere anche con select "miste" che congengono cioè estrazioni da più tabelle contemporaneamente, come le select join.
    Se invece il dataadapter è stato generato da codice, perchè riesca ad aggiornare è necessario generare i 3 command (update, delete insert) questo lo puoi fare manualmente, inserendo il codice per i comandi insert, update, delete (e i relativi parametri) oppure automaticamente tramite l'utilizzo di un commandbuilder.
    Esempio:
    Dim da As New OleDbDataAdapter("SELECT * from mytable",myconnection)
    Dim cm As New OleDbCommandBuilder(da)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    12
    Risolto!
    Mancava la chiave primaria nella tabella.

    1000 grazie per l'aiuto!

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.