Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    1

    Violazione di concorrenza: UpdateCommand ha modificato 0 dei 1 record previsti.

    ciao a tutti!

    stò realizzando un'applicazione gestionale per un'azienda.

    utilizzo visual studio 2005 come ambiente di sviluppo, vb.net come linguaggio e sql server 2005 per il database.

    nel programma ho esigenza (come in tutti i gestionali) di estrarre, leggere ,modificare, eliminare dati dal database.

    andando avanti nello sviluppo mi sono imbattutto in questo errore"Violazione di concorrenza: UpdateCommand ha modificato 0 dei 1 record previsti.", questo viene scatenato quando modifico una riga di una tabella e poi faccio l'update.

    la cosa strana è che l'errore compare solo su due tabelle del database, per tutte le altre funziona correttamente....

    sapreste illuminarmi su quali tipologie possono scatenare questo errore????

  2. #2
    Questo errore:"Violazione di concorrenza: UpdateCommand ha modificato 0 dei 1 record previsti", viene generato nel momento in cui il database e' stato aperto, e rimane aperto, da una applicazione e nello stesso tempo si utilizza un'altra applicazione per aprire lo stesso database sia per leggerlo che per modificarlo.
    Il modo per risolvere il problema e quello di aggiungere una riga alla routine di Update che hai creato, quella originale piu' o meno e' cosi:

    Me.Validate()
    Me.BindingSource.EndEdit()
    Me.TableAdapter.UpdateAll(Me.DataSet)

    Devi Aggiundere la riga:

    Me.DataSet.AcceptChanges()

    che praticamente esegue il commit di tutte le modifiche apportate a questo oggetto DataSet dal momento in cui e' stato caricato, questo e' come deve essere la nuova routine Update:

    Me.Validate()
    Me.BindingSource.EndEdit()
    Me.DataSet.AcceptChanges()
    Me.TableAdapter.UpdateAll(Me.DataSet)

    Spero di essere stato utile, anche se a distanza di cosi tanto tempo, o almeno spero che possa essere utile ad altri in futuro.
    Alcuni uomini creano il Futuro, tutti gli altri lo copiano!

  3. #3
    Sei stato utilissimo a me, avevo invertito le due istruzioni e mi dava errore!
    Grazie!

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Quote Originariamente inviata da Testa M. JBS84 Visualizza il messaggio
    Questo errore:"Violazione di concorrenza: UpdateCommand ha modificato 0 dei 1 record previsti", viene generato nel momento in cui il database e' stato aperto, e rimane aperto, da una applicazione e nello stesso tempo si utilizza un'altra applicazione per aprire lo stesso database sia per leggerlo che per modificarlo.
    Il modo per risolvere il problema e quello di aggiungere una riga alla routine di Update che hai creato, quella originale piu' o meno e' cosi:

    Me.Validate()
    Me.BindingSource.EndEdit()
    Me.TableAdapter.UpdateAll(Me.DataSet)

    Devi Aggiundere la riga:

    Me.DataSet.AcceptChanges()

    che praticamente esegue il commit di tutte le modifiche apportate a questo oggetto DataSet dal momento in cui e' stato caricato, questo e' come deve essere la nuova routine Update:

    Me.Validate()
    Me.BindingSource.EndEdit()
    Me.DataSet.AcceptChanges()
    Me.TableAdapter.UpdateAll(Me.DataSet)

    Spero di essere stato utile, anche se a distanza di cosi tanto tempo, o almeno spero che possa essere utile ad altri in futuro.
    Scusa ma se fai Me.DataSet.AcceptChanges() e poi l'update sei sicuro che funziona ?

    Facendo il commit poi il dataadapter non sa quali record sono stati modificati, cancellati, inseriti.

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.