Bonjour à tous ! Je viens vous demander conseil car je suis un peu perdue. Je m'explique :
Pour un projet de BTS, je dois réaliser un programme sous vb en Programmation Orientée Objet. Nous avons déjà vu en cours les bases mais dans mon projet je dois pouvoir insérer des données dans une BDD :
J'ai mis en place un héritage :
Dans la base de données, il est représenté comme celà :
- Pour la classe mère : Destination (Numerodestination, datedépart, durée, nbpersonnes)
- Pour les classes filles : Etranger (NoDestination, le pays)
France (NoDestination, departement, ville)
Le code pour l'héritage entre la classe mère et les classes filles est bon, mais j'ai un problème pour l'insertion.
En effet, quand le formulaire pour insérer une nouvelle destination est remplie les informations sur la destination s'insère dans la table DESTINATION mais si je veux enregistrer le Numero de destination dans la classe fille, il faut obligatoirement que je renseigne le numero de la destination dans un text box Autrement il y a une erreur (erreur logique car les classe filles sont relié à la classe mère par "NoDest")
J'ai créer une classe PASSERELLE pour l'insertion voilà le code (je met le code pour la classe fille FRANCE pour exemple) :
Et dans le code du formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Shared Sub EnregistrementDestinationF(ByVal numdest As Integer, ByVal unedest As france) Dim cnn As New OleDbConnection Dim cmd As New OleDbCommand 'Dim undep As france 'Dim drr As OleDbDataReader cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\bdvoyage.mdb" cnn.Open() cmd.Connection = cnn cmd.CommandText = "INSERT INTO france VALUES (" & numdest & ", '" & unedest.regiond & "', '" & unedest.villed & "')" cmd.ExecuteNonQuery() cnn.Close() End Sub
Voilà mon dode, désolé pour la longueur... Si vous avez une réponse à ma question, j'en serais très réconnaissante !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub BtnAjouterD_Click(...) If RdoFrance.Checked = True Then If RdoAvion.Checked = True Then unedestination = New Destination(TxtNoDest.Text, TxtDateD.Text, TxtDureeD.Text, TxtNbPlaceD.Text, TxtPrix.Text, "Avion") unFrance = New france(TxtNoDest.Text, TxtDateD.Text, TxtDureeD.Text, TxtNbPlaceD.Text, TxtPrix.Text, "Avion", TxtRegion.Text, TxtVille.Text) Else unedestination = New Destination(TxtNoDest.Text, TxtDateD.Text, TxtDureeD.Text, TxtNbPlaceD.Text, TxtPrix.Text, "Train") unFrance = New france(TxtNoDest.Text, TxtDateD.Text, TxtDureeD.Text, TxtNbPlaceD.Text, TxtPrix.Text, "Train", TxtRegion.Text, TxtVille.Text) End If Passerelle.EnregistrementDestination(unedestination) Passerelle.EnregistrementDestinationF(unedestination.numerodestination, unFrance) lesdestinations.Add(unFrance) lesdestinations.Add(unedestination) End If End Sub
Merci d'avance !
Ps : En pièce jointe, je vous met le formulaire
Partager