Dataset e relazioni...

martedì 27 gennaio 2009 - 16.21

montapippo Profilo | Newbie

Un saluto a tutti!!

il mio problema è questo:
ho un dataset con più tabelle, tra queste ce ne sono due (Clienti e medica) collegate con una relazione padre-figlio (Clienti è padre di Medica); devo aggiungere una riga a Medica ovviamente che sia collegata ad una riga specifica della tabella clienti....
e fin qui...
Così ho creato un campo in Medica che fa riferimento all' ID collegato della tabella Clienti, quindi quando creo una nuova riga in Medica inserisco l' ID del cliente che ci devo collegare. Il codice che ho scritto è questo:
-----------------------------------------------------------------------------
Dim NuovaMedica As DataRow
NuovaMedica = Clienti_Fornitori1.Medica.NewRow
NuovaMedica("IDCliFor") = CInt(txtIDCliFor.Text)
NuovaMedica("IDDottore") = CInt(1)
NuovaMedica("DataInizio") = Now.Date
Clienti_Fornitori1.Medica.Rows.Add(NuovaMedica)
AddHandler DapMediche.RowUpdated, New OleDb.OleDbRowUpdatedEventHandler(AddressOf RecuperaID)
DapMediche.Update(Clienti_Fornitori1, "Medica")
Assegnazione.IDMedica = NuovaMedica(0)
-----------------------------------------------------------------------------
Private Sub RecuperaID(ByVal sender As Object, ByVal args As OleDb.OleDbRowUpdatedEventArgs)
Dim ID As Integer = 0
Dim cmd1 As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT @@IDENTITY", OleDbConnection1)
If args.StatementType = StatementType.Insert Then
ID = CInt(cmd1.ExecuteScalar())
args.Row("IDCliFor") = ID
End If
End Sub
-----------------------------------------------------------------------------
ho inserito recupera ID per poter recuperare il vero ID del db access che mi servirà poi in seguito per un' altra cosa...

ma quando faccio l' update del dataadapter di Medica mi viene "detto":
-----
Eccezione non gestita di tipo "System.Data.InvalidConstraintException" in system.data.dll
Informazioni aggiuntive: ForeignKeyConstraint Clienti-Fornitori_Medica richiede l'esistenza dei valori delle chiavi figlio (1233069359) nella tabella padre.
-----

ma in realtà non dovrebbe essere la tabella figlio che deve avere il riferimento della tabella padre!?!?

l' insert command del dataadapter è questo: INSERT INTO Medica (IDCliFor, DataInizio, IDDottore) VALUES (?, ?, ?)
la relazione nel db access va bene, e penso che sia la stessa cosa anche in quella del dataset che ho in visual studio....


NON SO PIU' DOVE SBATTERE LA TESTA (se proprio bisogna sbatterla...)

grazie mille in anticipo a tutti!!



_______________________________________
oooopps!!

scusate ho risolto!!!
il problema era nella sub "RecuperaID": il nome della colonna del dataset in cui andavo a mettere il vero ID di access non è IdCliFor ma IDMedica.....

tutto è bene quel che finisce bene!!
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