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
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
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"
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
Partager