Salut tout le monde.
J'ai une erreur lorsque je veut mette à jour ma base de donnée :
La méthode OleDbCommand.Prepare requiert que tous les paramètres de longueur variable aient une valeur Size explicitement définie différente de zéro.
J'ai un Datagrid chargé à partir d'une Base de donnée produit et j'aimerai mettre à jour les stocks des produits.
Merci

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
Dim ref As String
        Dim nbstock As Integer
        Dim nbr As Integer
        ref = InputBox("Veuillez entrer le nom du produit", "Ajout Stock")
        nbstock = InputBox("Veuillez entrer le nombre de cartouche", "Ajout Stock")
'permet de trouver la ligne du produit dont on veut changer les stock
        For i = 0 To dgt_prod.Rows.Count - 1
            If dgt_prod.Item(2, i).Value = ref Then
                i = nbr
            End If
        Next
 
        cmd = New OleDbCommand()
 
        cmd.CommandText = "SELECT * FROM Products WHERE ProductName =prod"
        cmd.Parameters.Add("prod", System.Data.OleDb.OleDbType.VarChar)
        cmd.Parameters("prod").Value = ref
 
        'remplissage du DataAdapter,du DataSet et de la DataTable
 
        dta = New OleDbDataAdapter(cmd)
        cmd.Connection() = cnx
 
        Try
            dta.Fill(dts, "Products")
        Catch ex As OleDb.OleDbException
            MsgBox("ERROR:" & ex.Source & " " & ex.Message, MsgBoxStyle.OkOnly)
        End Try
        'récupération de la ligne sur laquel on est placés dans le datarow
 
        dtr = dts.Tables("Products").Rows(chiffre)
 
        'modification des données
        dtr("QuantitéEnStock") = nbstock
 
        'création et exécution du commandbuilder pour mettre à jour le DataAdapter
        cmdb = New OleDbCommandBuilder(dta)
 
 
 
 
 
        dta.Update(dts, "Products")
        dtt = dts.Tables("Products")