Problema OleDbDataAdapter Update e Relazioni

mercoledì 02 marzo 2011 - 14.17
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Visual Studio 2010  |  Access (.mdb)

whiteflash Profilo | Junior Member

Ciao a tutti sono 2 giorni che ho questo problema e nonostante 1000 ricerche su google non sono riuscito a cavare un ragno dal buco.... :'(

Questo è l'errore:
[i]Impossibile aggiungere o modificare il record. Nella tabella "TCategorie" è necessario un record correlato.[/i]

ma per farvi capire come succede vi spego com'è la mia situazione:


Per semplificare diciamo che ho un DB con 2 tabelle:
TCategorie ([u]idcategorie[/u], nome, descrizione .....)
TSottocategorie (idsottocategorie, [u]idcategorie[/u], nome, descrizione......)

l'unico legame che c'è tra loro è l'IDCategorie che è definito ovviamente come "1 a molti" verso le sottocategorie.

Questo è il codice che carica nel dataset il database:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

E fino a quì tutto funziona ottimamente,
Ora presumiamo che abbia aggiunto una categoria e all'interno di essa una sottocategoria,
e ora l'utente deve salvare le modifiche, quindi questo è il codice di salvataggio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ora quando premo il pulsante per salvare (che esegue il codice soprastante) il debugger mi va in errore sulla riga in grassetto, dicendomi:

[i]Impossibile aggiungere o modificare il record. Nella tabella "TCategorie" è necessario un record correlato.[/i]

Ma se vado a vedere nel database il record "padre" è stato salvato, e non riesce mai a salvare il "figlio".

Qualcuno sa aiutarmi?
Non so più cosa fare!!
il codice sembra corretto perchè se salvo quando effettuo solo modifiche funziona, ma non vuole saperne di aggiungermi nuove sottocategorie...





>>>> PROBLEMA RISOLTO

OleDbDataAdapter non supporta le relazioni, può modificare solo una tabella per volta.
in poche parole è meglio usare OleDbCommand...
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