Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Dataset e relazioni...
martedì 27 gennaio 2009 - 16.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
montapippo
Profilo
| Newbie
10
messaggi | Data Invio:
mar 27 gen 2009 - 16:21
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!!
Torna su
Stanze Forum
Elenco Threads
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 !