Problemi form master detail

venerdì 14 gennaio 2005 - 11.06

nothorius Profilo | Newbie

Ciao a tutti , volevo sottoporvi un mio problema .
Ho realizzato delle maschere master dettagli, che credevo funzionassero bene. Invece mi sono reso conto che quando creo un nuovo record e inserisco dei valori nella parte dettagli , mi compare il seguente messaggio d'errore :

ERRORE DURANTE IL COMMIT DELLA RIGA ALL'ARCHIVIO ORIGINALE : ForeignKeyCostraint FornitoriAgenti (per esempio) richiede l'esistenza dei valori delle chiavi figlio (numero) nella tabella padre. corregere il valore ?

Se rispondo SI ritorna alla sottomaschera e ad ogni azione mi ridà lo stesso errore , mentre se rispondo no, crea un nuovo recod nella sottomaschera cancellando il precedente e la storia rcomincia.

Infine se creo un nuovo record lato master e poi torno indietro , al record precedente l'inserimento avviene normalmente. Potete aiutarmi? Grazie

Cteniza Profilo | Guru

Visto che hai inserito dei vincoli devi risolverli prima di scrivere la riga.
Puoi intervenire prima dell'evento update facendo un controllo delle righe inserite e risolvendo i conflitti
Naturalmente se inserisci una riga senza che ci sia la relativa testata e/o fai l'update delle sole righe ottieni un errore

nothorius Profilo | Newbie

grazie cteniza ma non riesco a capire che cosa intendi per "risolverli". Puoi farmi un esempio pratico?

Cteniza Profilo | Guru

Ad esempio gestendo l'evento row updating del dataadapter:
myDataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdating );
Sul gestore dell'evento fai il resto

protected static void OnRowUpdating(object sender, OleDbRowUpdatingEventArgs args)
{
if (args.StatementType == StatementType.Insert)
{
}
}

Oppure puoi, ad ogni newrow() del dettaglio verificare e/o creare la chiave di testata (naturalmente questo dipende da come è strutturato il tuo programma)




nothorius Profilo | Newbie

Ho capito , ma il problema è che l'errore si verifica nel momento in cui inserisco dei dati nel datagrid e non quando faccio l'update.
Esempio :
se i campi che compongono il datagrid (quindi il dettaglio) sono PREZZO.QUANTITA e SCONTO appena , in sequenza arrivo ad inserire un valore nel campo sconto mi da quell'errore.

Qundi la cosa diventa difficile da gestire.

Cteniza Profilo | Guru

A questo punto ti conviene allora intervenire sulla newrow appena inserita prima dell'add sulla datatable

nothorius Profilo | Newbie

CTENIZA :


IMPOSSIBLE IS NOTHING !

Ci sono riuscito....mi sono illuminato

cmq grazie ancora.
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