Problème d'exécution d'une requête

Fermé
am092
Messages postés
4
Date d'inscription
lundi 4 mai 2015
Statut
Membre
Dernière intervention
27 juillet 2015
- Modifié par Whismeril le 13/07/2015 à 14:37
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 13 août 2015 à 23:20
Bonjour,

Je veux modifier les données d'une table via le code vb suivant:

 n = DataGridpdr.RowCount - 1
                Dim i = 0
                Dim nvl_qtit As Integer
                While i < n
                    nvl_qtit = CInt(DataGridpdr.Item(4, i).Value - DataGridpdr.Item(2, i).Value)

                    req = "update PDR SET quantite_en_stock= " + nvl_qtit + " where référence='" + DataGridpdr.Item(0, i).Value + "'"
                    cmd = New OleDbCommand(req, cn)
                    cmd.ExecuteNonQuery()

                    i = i + 1
                End While


voici le message d'erreur qui s'affiche au niveau de la requête : La conversion de la chaîne "update PDR SET quantite_en_stock" en type 'Double' n'est pas valide.
sachant que le type du champ quantite_en_stock de la table PDR est numérique
Quelqu'un peut m'aider?
Merci d'avance.

EDIT: Ajout de la coloration syntaxique.
A voir également:

1 réponse

Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
Modifié par Whismeril le 13/08/2015 à 23:20
Bonjour,

Voici comment j'écrirai le code -> Non testé

        Dim Nbr As Int32 = 10
        Dim req As String = String.Empty
        Dim cmd As New System.Data.OleDb.OleDbCommand(req, Connexion)

        'n = DataGridpdr.RowCount - 1

        Dim iCmpt = 0
        Dim nvl_qtit As Int32 = 0
        While iCmpt < Nbr

            nvl_qtit = (Convert.ToInt32(DataGridpdr.Item(4, iCmpt).Value) - Convert.ToInt32(DataGridpdr.Item(2, iCmpt).Value))

            req = String.Concat("update PDR SET quantite_en_stock= ", nvl_qtit, " where référence='", DataGridpdr.Item(0, iCmpt).Value, "'")

            cmd = New OleDbCommand(req, Connexion)
            cmd.ExecuteNonQuery()
            iCmpt += 1

        End While



Kalissi
1
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
833
13 août 2015 à 23:20
EDIT: Précision du langage dans la coloration syntaxique.
0