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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 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.

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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
13 août 2015 à 23:20
EDIT: Précision du langage dans la coloration syntaxique.
0