Quale strategia per memorizzare dati in una form multi-step?

mercoledì 19 gennaio 2011 - 11.51
Tag Elenco Tags  .NET 2.0

liuc Profilo | Junior Member

Ciao,
ho una form multi-step (realizzata con multiview) in cui inserisco i dati relativi ad un incidente stradale; l'intenzione è di salvare i dati nel db solo alla fine (ultimo step).
Per ciascun veicolo coinvolto devo inserire i dati degli occupanti e delle violazioni al codice della strada commesse dal conducente (se presenti).
Nel mio DB ho tre tabelle per questi dati:
- Veicolo (IdVeicolo, Identificativo, IdTipoVeicolo)
- UtenteStrada (idUtenteStrada, IdTipoUtente, IdVeicolo, IdIncidente, Datanascita, Sesso, IdTipoLesione)
- ViolazioneCdS (IdViolazione, IdUtenteStrada, ArticoloCdS)
Nel DB i campi ID sono tutti auto-incrementanti.

Per memorizzare queste informazioni fino al salvataggio finale avevo pensato di mantenere in sessione un dataset con le tre tabelle indicate. però ho alcune perplessità che vi espongo di seguito

Come mantengo il legame tra le tre tabella (nel dataset in memoria) dal momento che i campi id non sono ancora valorizzati in fase di inserimento ?

Nell'ipotesi di considerare i campi id come autoincrementanti anche nel dataset , quando leggo i dati dal db si crea una discordanza tra gli id memorizzati nel databse e quelli presenti nel dataset dopo la lettura (giusto?) ; in tal caso come faccio ad aggiornare un record dal momento che non ho più il suo id iniziale?


Non sono molto pratico e spero di essere stato chiaro.
Grazie.


andrestu Profilo | Expert

di recente ho dovuto affrontare lo stesso problema, non ho utilizzato il multistep ma pagine singole per ogni tipo di inserimento di cui avevo bisogno (totale 3 pagine). I dati me li sono salvati in session, mi sono salvato per ogni pagina i singoli campi quindi per esempio session["campo1"], session["campo2"] e così via. In questo modo si arriva all'ultimo step con tutti i parametri a disposizione e a qual punto, sia che usi un sqldatasource o altro, basta che prendi da session i valori e il gioco è fatto. Nel mio caso ho trasferito tutti i controlli sqldatasource all'ultima pagine e poi dopo averli valorizzati ho fatto un update in sequenza.


Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5