Bonjours je me retrouve coincer suite a une erreur donc je ne connait pas du tout la solution .
dans l'application je souhaite inserer les champs que j'ai remplis dans mon application mais lors de cet action ( via un bouton) je me retrouve avec cet erreur

Cannot add or update a child row: a foreign key constraint fails (`stage`.`materiel`, CONSTRAINT `materiel_ibfk_1` FOREIGN KEY (`numeroCategories`) REFERENCES `categoriemateriel` (`NumeroCategorie`) ON DELETE CASCADE ON UPDATE CASCADE).

je vous donne le code gerant cet insertion

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub BtnAjouterPO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouterPO.Click
 
 
        If CbMarque2.Text <> "" Then
            Dim a As String
            Dim b As String
            Dim c As String
            Dim d As String
            Dim i As String
            Dim f As String
            Dim g As String
            Dim h As String
            Dim j As String
 
            a = Txtidmateriel.Text
            b = CbMarque2.Text
            c = txtDesignation.Text
            d = CbCategorie2.Text.ToString
            i = Cbreference.Text
            f = TxtTaille2.Text
            g = TxtPrix.Text
            j = txtquantiter.Text
 
            h = b & " " & c & " " & f
 
            connection.MaRequete = "Insert into materiel Values ( " & a & " , '" & h & "', " & g & " ," & j & " ,'" & i & "' , '" & d & "' )"
            connection.MaCommandeSpecialRequete.CommandText = connection.MaRequete
            connection.MaCommandeSpecialRequete.ExecuteNonQuery()
            MessageBox.Show("Materiel Ajoutée...!", "Insertion", MessageBoxButtons.OK, MessageBoxIcon.Information)
            position = 0
            RechargerLesDonnees()
            RafraichirListe()
            BtnAjouterPO.Text = "+"
        Else
            MessageBox.Show("Erreur de saisie...!", "Alerte!", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
 
    End Sub

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
17
18
 Private Sub RechargerLesDonnees()
        connection.MonJeuDeDonnees.Tables("Toutmateriel").Clear()
        connection.MaRequete = "select idmateriel,nommateriel,prixmateriel,quantiter,reference,numerocategories,nomcategorie from materiel,categoriemateriel where (materiel.numeroCategories=categoriemateriel.NumeroCategorie) "
        connection.MaCommandeSpecialRequete.CommandText = connection.MaRequete
        connection.MonRemplisseur.SelectCommand = connection.MaCommandeSpecialRequete
        connection.MonRemplisseur.Fill(connection.MonJeuDeDonnees, "Toutmateriel")
    End Sub
 
    Public Sub Rafraichir()
        Txtidmateriel.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(0)
        CbMarque.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(1)
        txtDesignation.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(2)
        CbCategorie2.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(3)
        Cbreference.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(4)
        TxtTaille2.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(5)
        TxtPrix.Text = connection.MonJeuDeDonnees.Tables("Toutmateriel").Rows(position).Item(6)
        DgOccasResultat.DataSource = connection.MonJeuDeDonnees.Tables("Toutmateriel")
    End Sub
je vous remercie d'avance de votre aide