Gestione Relazioni db

giovedì 12 ottobre 2006 - 14.54

Axel2006 Profilo | Newbie

Salve a tutti,
sò bene che la domanda che stò per fare è da vero Newbie ma abbiate pazienza. Premetto che sono un ex "programmatore" autodidatta di VB6 e da circa un anno mi sono messo a lavorare un pò con .net, il mio problema è nelluso di tabelle relazionate. Per quanto rigurada la visualizzazione è banale, basta scegliere le due o più tabelle che si desidera visualizzare e creare le relazioni e tutto funziona egregiamente, il problema invece insorge quando si fanno dei salvataggi. Nei libri a mia disposizione questo problema viene sempre risolto creando comandi sql per il salvataggio e l'aggiornamento dei dati ma questa soluzione mi appare alquanto rognosa, immaginiamo di avere 20 - 30 tabelle il doverle aggiornare con i vari INSERT o UPDATE e DELETE mi sembra un lavoro immenso. Ho notato però che nella gestione delle relazioni tramite il la finestra di progettazione del dataset le relazioni permettano tre tipi fondamentali di impostazione solo vincolo o solo relazione e relazione e vincolo. E' chiaro che se si vogliono modificare tutti i record delle due o più tabelle si deve scegliere solo vincolo o relazione e vincolo ma nonostante le molteplici prove il risultato è sempre deludente in alcuni casi vengono violate le relazioni di vincolo in altri ho problemi di integrità. Stò sbagliando qualche cosa ma la mia domanda è cosa? Oppure non ho capito niente? Di seguito posto il codice che userei per fare l'operazione di salvataggio e per creare un nuovo record

Private Sub BtnNuovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuovo.Click
Me.AnagraficaPersonaleBindingSource.CancelEdit()
Me.IndirizzoPersonaleBindingSource.CancelEdit()
Me.AnagraficaPersonaleBindingSource.AddNew()
Me.IndirizzoPersonaleBindingSource.AddNew()
FlagNew = True
End Sub

Private Sub BtnSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSalva.Click
Me.AnagraficaPersonaleBindingSource.EndEdit()
Me.AnagraficaPersonaleTableAdapter.Update(Me.DSAnagrafiche.AnagraficaPersonale)
Dim ID As Int32 = Me.AnagraficaPersonaleTableAdapter.MaxID.Value
Me.IndirizzoIDPers.EditValue = ID
Me.IndirizzoPersonaleBindingSource.EndEdit()
Me.IndirizzoPersonaleTableAdapter.Update(Me.DSAnagrafiche.IndirizzoPersonale)
End If
End Sub

Ad intuito direi che se una tabella è relazionata dovrebbe essere sufficiente inserire una nuova riga sulla tabella padre e per cascata si dovrebbero avere una riga nuova su ogni tabella figlia in realta non è così, lo stesso dovrebbe valere per il salvataggio o l'eliminazione ma ahime! non funziona mi potreste dare indicazioni articoli, consigli senza dirmi che è meglio che mi dò ai fiori lo sò da me .... Grazie Francesco
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