IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Remplir commande et details de commande automatiquement à l’aide de deux procedures


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Par défaut Remplir commande et details de commande automatiquement à l’aide de deux procedures
    Bonjour tous le monde,
    SVP je besoin de vos aides
    J’aimerai remplir une commande et details de commande automatiquement à l’aide de deux procedures
    1er : procedure ajout commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub AddCommande(ByVal NumCommande As Integer, ByVal DateCommande As Date, ByVal NumCLient As Integer, ByVal Description_Commande As String)
     
            If CN.State = ConnectionState.Closed Then
                CN.Open()
            End If
                    Dim cmdCMDCLtPrdt As New OleDb.OleDbCommand
            cmdCMDCLtPrdt.Connection = CN
     
            cmdCMDCLtPrdt.CommandText = "insert into Commandes(NumCommande,DateCommande,NumClient,Description_Commande)" & _
                                               "values('" & txtNCdclt.Text & "','" & dateCmdClt.Text & "','" & txtnumclient.Text & "','" & txtdescmdClt.Text & "')"
                    cmdCMDCLtPrdt.ExecuteNonQuery()
            IdAutoCommandeCltPrdt()
            CN.Close()
        End Sub
    2ème : procedure ajout dans details de commande:
    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
    Public Sub AddDetailCommande(ByVal Reference As Integer, ByVal NumCommande As Integer, ByVal Prix_unitaire As Double, ByVal Quantite As Integer, ByVal PVenteHT As Double, ByVal taux As Integer, ByVal TVA As Integer, ByVal PrixVenteTTC As Double, ByVal Remise As Integer, ByVal MontantTotPrixVente As Double)
     
            If CN.State = ConnectionState.Closed Then
                CN.Open()
            End If
             Dim cmdDetailcd As New OleDb.OleDbCommand
     
     
            cmdDetailcd.Connection = CN
            cmdDetailcd.CommandText = "insert into Details_commandes(Reference,NumCommande,Prix_unitaire,Quantite,PVenteHT,Taux,TVA,PrixVenteTTC,Remise,MontantTotPrixVente)" & _
                                              "values('" & txtIRefproduit.Text & "','" & txtNCdclt.Text & "','" & txtPrix.Text & "','" & txtQte.Text & "','" & txtPVHT.Text & "','" & txtTaux.Text & "','" & txtTVA.Text & "','" & txtPVTTC.Text & "','" & txtRemise.Text & "','" & txtTMntTTC.Text & "')"
     
     
            cmdDetailcd.ExecuteNonQuery()
     
     
     
            CN.Close()
        End Sub
    3 ème : Appel de deux procedure par click sur une bouton:
    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
    Private Sub btnAddCommande_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddCommande.Click
            'ajouter donnée dans commande
            Dim i As Integer
            AddCommande(txtNCdclt.Text, dateCmdClt.Value, txtnumclient.Text, txtdescmdClt.Text)
     
            'jouter dans details de commande
     
            For i = 0 To dgvProduits.Rows.Count - 1
                AddDetailCommande(dgvProduits. Rows(i).Cells(0).Value, _
                                                                 dgvProduits.Rows(i).Cells(2).Value, _
                                   dgvProduits.CurrentRow.Cells(3).Value, _
                                   dgvProduits.Rows(i).Cells(4).Value, _
                                   dgvProduits.Rows(i).Cells(5).Value, _
                                   dgvProduits.Rows(i).Cells(6).Value, _
                                   dgvProduits.Rows(i).Cells(7).Value, _
                                   dgvProduits.Rows(i).Cells(8).Value, _
                                   dgvProduits.Rows(i).Cells(9).Value)
     
            Next
     
     
            MsgBox("Le commande a été ajouté avec succée !!!", vbInformation + vbOKOnly, "Information ")
     
        End Sub
    Pour e premier procedure tous va bien et je peux vir les données sur la table commande. Mais pour le deuxième procedure j’ai reçu le probleme suivant :

    La conversion de la chaîne "Anneau de dentition refrigerant " en type 'Integer' n'est pas valide.

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Quand on développe, il faut connaitre les points d'arrêts et le pas-à-pas. C'est la base.

    Pour faire cela tu cliques dans la marge de ton code sur la ligne de code qui t'intéresse, ça mets un point rouge et le code s'arrête quand tu y arrives.

    Du coup tu vas le mettre ici dans la méthode AddDetailCommande. sur une des première ligne...

    Quand le code s'y arrête, tu passes la souris au dessus des paramètres... Ca va t'afficher une info-bulle avec la valeur des paramètres...
    Et là tu te rendra compte que pour un paramètre censé être un Integer (Prix ou je ne sais quoi), tu lui à passé en paramètres du texte.

    Donc tu en concluras que tu as passé, en paramètre de cette procédure, une mauvaise colonne de ton DatagridView, il faut trouver laquelle.


    PS : Sinon, pour bien faire les choses, il ne faut pas executer les requetes de cette manière à l'ancienne justement pour éviter ce genre d'erreur... Mais d'utilisé les requêtes paramétrées. Il y a plein de tutorial partout

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Par défaut
    j'ai essayé mais sans vain!!!!!!!!!!
    Images attachées Images attachées  

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Passe la souris au dessus des ".Value" et trouve laquelle contient le texte incriminé

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Par défaut
    rang par colonne de parcours de datagridview
    'r(0) = txtIRefproduit.Text
    'r(1) = txtDesignProduit.Text (n'exite pas au detail de commande"
    'r(2) = txtPrix.Text
    'r(3) = txtQte.Text
    'r(4) = txtPVHT.Text
    'r(5) = txtTaux.Text
    'r(6) = txtTVA.Text
    'r(7) = txtPVTTC.Text
    'r(8) = txtRemise.Text
    'r(9) = txtTMntTTC.Text

    j'essaye de corrigé mais j'ai pas trouvé l'idee pouvez m'aider
    merci
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Tu n'as pas fais ce que j'ai dis : Passer la souris sur les ".value", et trouver quelle colonne contient la chaîne de caractère "Anneau de dentition refrigerant ". ici :

    Nom : img1.JPG
Affichages : 284
Taille : 57,2 Ko


    Car le problèmes vient bien du fait que ta méthode attends des paramètres... certains sont des integers :

    Nom : img2.JPG
Affichages : 249
Taille : 12,3 Ko


    Or toi, tu envois directement du contenu, en pensant que c'est les bonnes colonnes...

    Nom : img3.JPG
Affichages : 317
Taille : 32,8 Ko


    Déjà, normalement, on utilise pas trop l'index pour indiquer quelle colonne... Car le jour où tu changes les colonnes do'rdre.. Ca ne marchera plus.
    En plus, (et c'est peut être ton problème), si tu as des colonnes invisibles... Toi tu crois que la deuxième colonne que tu vois à l'indice 1, or c'est peut être 4 ou 5 si il y a 3-4 colonnes invisible.

    Pour bien faire, il faut aller en Mode Design, clique-droit sur le datagridview, sélectionner une colonnes, et récupérer son name

    Et pour récupérer une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Datagridview1.Item(Me.NomdeMacolonne.Name,indexLigne).value

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Passe la souris au dessus des ".Value" et trouve laquelle contient le texte incriminé
    il ya des "" pour tous les parametre sauf le numéro de commande je peux voir son valeur

Discussions similaires

  1. Remplir l'objet d'un email automatiquement
    Par tibogaet dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/07/2008, 18h36
  2. Remplir un formulaire et se loguer automatiquement
    Par Enhide dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/03/2008, 10h50
  3. [MySQL] Aide envoie commande (calcul quantité + prix commande total)
    Par klue_ dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/05/2007, 11h49
  4. Réponses: 2
    Dernier message: 04/02/2007, 19h48
  5. Lancer une commande (type ligne de commande) depuis programme Java
    Par rprom1 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 15/12/2006, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo