Bonsoir les développeurs

J'essaie de remplir ma table Tapis à partir de ma datagridview remplie par l'utilisateur, je déclare les colonnes de ma datagridview dans ma form_load.
Mon problème est au niveau de ma commande Insert into, les valeurs sont bien insérés dans ma base mais le message d'erreur : la référence d'objet n'est pas définie à une instance d'un objet est tjrs là, je sais pas pkoi

Je vous copie mon code, merci d'avance pour votre aide
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 'Définition de la datagridview
 
            'ref
            Dim ColRef As New DataGridViewTextBoxColumn
            Me.DataGridView1.Columns.Add(ColRef)
            ColRef.Name = "Référence"
            ColRef.HeaderText = "Référence"
            'controle
            Dim ColCon As New DataGridViewTextBoxColumn
            Me.DataGridView1.Columns.Add(ColCon)
            ColCon.HeaderText = "Contrôle"
            ColCon.Name = "Contrôle"
            'Texture
            Dim ColTexture As New DataGridViewComboBoxColumn
            DataGridView1.Columns.Add(ColTexture)
            ColTexture.Name = "Texture"
            ColTexture.HeaderText = "Texture"
            ColTexture.Items.Add("CU*IR")
            ColTexture.Items.Add("KL*IM")
            ColTexture.Items.Add("12*12")
            ColTexture.Items.Add("20*20")
            ColTexture.Items.Add("25*26")
            ColTexture.Items.Add("30*30")
            ColTexture.Items.Add("40*40")
            ColTexture.Items.Add("50*50")
            ColTexture.Items.Add("60*60")
            ColTexture.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
            ColTexture.Width = 80
            Dim ColLong As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColLong)
            ColLong.HeaderText = "Longueur"
            ColLong.Name = "Longueur"
            Dim ColLarg As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColLarg)
            ColLarg.HeaderText = "Largeur"
            ColLarg.Name = "Largeur"
            Dim ColSur As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColSur)
            ColSur.HeaderText = "Surface"
            ColSur.Name = "Surface"
            'Matière
            Dim ColMatiere As New DataGridViewComboBoxColumn
            DataGridView1.Columns.Add(ColMatiere)
            ColMatiere.Name = "Matière"
            ColMatiere.HeaderText = "Matière"
            ColMatiere.Items.Add("Laine")
            ColMatiere.Items.Add("Soie")
            ColMatiere.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
            ColMatiere.Width = 80
            'Genre
            Dim ColGenre As New DataGridViewComboBoxColumn
            DataGridView1.Columns.Add(ColGenre)
            ColGenre.Name = "Genre"
            ColGenre.HeaderText = "Genre"
            ColGenre.Items.Add("1")
            ColGenre.Items.Add("2")
            ColGenre.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
            ColGenre.Width = 80
 
            Dim ColDep As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColDep)
            ColDep.HeaderText = "Département"
            ColDep.Name = "Département"
            Dim ColDate As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColDate)
            ColDate.HeaderText = "Date"
            ColDate.Name = "Date"
            Dim ColPrix As New DataGridViewTextBoxColumn
            DataGridView1.Columns.Add(ColPrix)
            ColPrix.HeaderText = "Prix Achat"
            ColPrix.Name = "Prix Achat"
L'exception est générée au niveau de ma commandText:
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
 
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cmdAdd As New SqlCommand
        Dim i As New Integer
 
 
        If Not Myconnexion.State = ConnectionState.Open Then
            Myconnexion.Open()
        End If
        cmdAdd.Connection = Myconnexion
 
 
        For i = 0 To Me.DataGridView1.Rows.Count - 1
            Me.DataGridView1.Rows(i).Cells(3).Value = Replace((Me.DataGridView1.Rows(i).Cells(3).Value), ",", ".")
            Me.DataGridView1.Rows(i).Cells(4).Value = Replace((Me.DataGridView1.Rows(i).Cells(4).Value), ",", ".")
            Me.DataGridView1.Rows(i).Cells(5).Value = Replace((Me.DataGridView1.Rows(i).Cells(5).Value), ",", ".")
            cmdAdd.CommandText = "INSERT INTO Tapis ( Référence, Contrôle, Texture, Longueur, Largeur, Surface, Matière, Genre, Département, Date, PrixAchat, IdBazar, NBonAchat) VALUES ( " & _
             Me.DataGridView1.Rows(i).Cells(0).Value & " , " & Me.DataGridView1.Rows(i).Cells(1).Value & " , '" & Convert.ToString(Me.DataGridView1.Rows(i).Cells(2).Value) & "' , " & Me.DataGridView1.Rows(i).Cells(3).Value & " , " & Me.DataGridView1.Rows(i).Cells(4).Value & " , " & Me.DataGridView1.Rows(i).Cells(5).Value & _
            " , '" & Me.DataGridView1.Rows(i).Cells(6).Value.ToString & "' , '" & Me.DataGridView1.Rows(i).Cells(7).Value.ToString & "' , '" & Convert.ToString(Me.DataGridView1.Rows(i).Cells(8).Value) & "' , '" & Convert.ToString(Me.DataGridView1.Rows(i).Cells(9).Value) & _
            "' , '" & Me.DataGridView1.Rows(i).Cells(10).Value & _
            "' , " & Me.TextBox1.Text & " , " & Me.TextBox2.Text & ")"
            cmdAdd.ExecuteNonQuery()
        Next
        MsgBox("Bon d'achat confirmé !", MsgBoxStyle.Information)
        cmdAdd.Dispose()
        Myconnexion.Close()
 
    End Sub