Oppure

Loading
10/06/10 7:23
clode87
ciao a tutti. sto realizzando un applicazione che utilizza la connessione ad un database.

nella form principale apro la connessione e carico i dati di tutte le tabelle del database, tuttavia quando devo modificare una riga della colonna licenza mi affido ad un form secondario.

qui ho importato il mio dataset ed il mio tableadapter.

riesco ad estrarre i dati ma quando faccio per salvarli mi da il seguente errore sull'update:

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

il problema è che io sono l'unico utente che accede al database quindi è impossibile che i dati siano stati modificati da un'altro, in piu da quando carico il dataset a quando lo aggiorno passano 10 righe di codice!

Me.LicenzaNTableAdapter.Fill(Me.DbAssistenzaDataSet.LicenzaN)

Dim dRow As DbAssistenzaDataSet.LicenzaNRow
dRow = Form1.DbAssistenzaDataSet.LicenzaN.Rows.Find(Form1.IDLicenzaSelezionato)

dRow.DataAtt = DateTimePickerDataAttLicenza.Value

If (CheckBoxScadLicenza.CheckState = CheckState.Checked) Then

Dim data As Date

data = "01/01/9999"


dRow.DataScad = data

Else
dRow.DataScad = DateTimePickerDataScadLicenza.Value


End If

dRow.Attiva = True
dRow.Canone = dRow.Canone
dRow.ID_Aziendale = dRow.ID_Aziendale

dRow.ID_Sw = dRow.ID_Sw
dRow.ID_LicDett = 0


Me.LicenzaNTableAdapter.Update(Form1.DbAssistenzaDataSet.LicenzaN)
Me.DbAssistenzaDataSet.AcceptChanges()


l'unico dubbio che ho è il fatto che per far visualizzare grid particolari con dati provenienti da tabelle differenti creo un datatable facendo un join tra le tabelle interessate....
però questi dati li utilizzo solo per leggere e creare nuove righe di quella tabella senza toccare però la tabella interessata..... qualche idea???
Ultima modifica effettuata da Il Totem 12/06/10 16:36
aaa
10/06/10 10:01
clode87
scusate ho postato un codice sbagliato.... ci sono dentro 2 riferimenti al form principale che usavo per testare una cosa... il codice giusto è questo:

Dim dRow As DbAssistenzaDataSet.LicenzaNRow
dRow = Me.DbAssistenzaDataSet.LicenzaN.Rows.Find(Form1.IDLicenzaSelezionato)
dRow.DataAtt = DateTimePickerDataAttLicenza.Value

If (CheckBoxScadLicenza.CheckState = CheckState.Checked) Then
   Dim data As Date
   data = "01/01/9999"
   dRow.DataScad = data
Else
   dRow.DataScad = DateTimePickerDataScadLicenza.Value
End If

dRow.Attiva = True
Me.LicenzaNTableAdapter.Update(Me.DbAssistenzaDataSet.LicenzaN)


a nessuno è mai uscito un errore simile????
Ultima modifica effettuata da Il Totem 12/06/10 16:37
aaa
12/06/10 16:39
Il Totem
A me è capitato. Ogni riga ha dei metodi chiamati, se non ricordo male, SetAdded e SetModified, per indicare se è stata aggiunta o modificata. Se non hai esplicitamente chiamato questi metodi, potrebbe verficarsi l'eccezione che hai riscontrato. La soluzione potrebbe consistere nell'invocare SetAdded per le righe aggiunte e SetModified per le righe modificate.
aaa