Passaggio ID tra due form

martedì 03 marzo 2009 - 20.39

pico81 Profilo | Newbie

Sto sviluppando la mia applicazione winform con VB express e uso un database Access.
Dopo aver inserito un nuovo record nel form1, ho la necessità di aprire un secondo form a cui passare l'ID del record appena inserito.

Quando creo un nuovo record, mi il nuovo ID assume valore negativo, quindi quando richiamo il form2, gli passo tale ID negativo, mentre io ho necessità di passare il valore che il record assume effettivamente nel database.

Jeremy Profilo | Guru

Ciao Antonio.
Puoi fare una :
SELECT MAX(Id) FROM TuaTabella
per sapere l'ultimo Id presente nel database e aggiungere 1 al valore che ottieni.
In questo modo otterrai il valore che 'presumibilmente' assumerà nella tabella del DB

Facci sapere....
Ciao

pico81 Profilo | Newbie

Ok vi farò sapere, per il momento sto cercando di capire perchè mi esce fuori un errore di violazione di concorrenza.

luxsor Profilo | Guru

Ciao Antonio,
ti consiglio di usare la funzione:
SELECT @@IDENTITY che ti restituisce id dell'ultimo record inserto nel database.

Questo ID te lo memorizzi in una variabile public o un una textbox, in modo che hai accesso da un'altra form

Fammi sapere

pico81 Profilo | Newbie

Il problema della violazione di concorrenza era dovuto l fatto che facevo l'update 2 volte senza ripopolare il tableadapter.
Alla fine ho risolto entrambe i problemi così:

private sub salva()
me.Validate()
me.tabella1BindingSource.EndEdit()
me.TableAdapterManager.UpdateAll(me.Dataset1)
'ho aggiunto------------------------------------------------------
me.tabella1TableAdapter.Fill(me.Dataset1.tabella1) 'carico nuovamente i dati della tabella
me.tabella1BindingSource.MoveLast() 'mi sposto all'ultimo record

In questo modo ottengo l'ID aggiornato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5