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

Windows Forms Discussion :

Mise a jour de quantité de produits a partir de datagridview


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut Mise a jour de quantité de produits a partir de datagridview
    salut

    je veux votre aide pour une application gestion de stock
    j'ai un form ajoutfacture pour ajouter une nouvelle facture qui contient le informations nécessaires et une datagridview

    dans le datagridview j'ai 4 colonnes sont:
    ref=reference
    des=designation
    prixunit=prix unitaire
    montant=prixunitaire*qte

    pour le moment tous est bien

    pour inserer une facture j'ai 2 requêtes de type sqlcommande
    la première pour insérer les informations facture
    et la 2 eme c'est une boucle (loop) pour insérer les détails facture (les informations de datagridview)

    le probleme que j'ai essayé d'ajouter une requete dans la loop pour mis a jour de la quantité de produits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DGVinto.CommandText = "Update Produits Set Qtedisp=(qtedisp-qte) where designation='" & designation & "''"
    mais la quantité reste la même et il ya aucun message d'erreur
    quelque un peut m'aider svp
    et merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Points : 88
    Points
    88
    Par défaut
    Bonjour,

    A quoi correspond Qtedisp=(qtedisp-qte)

    Si le type dans la base est numérique Qtedisp = " & Integer & "...
    Si le type dans la base est Text Qtedisp = '" & string &"' ...

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par bobo10 Voir le message
    Bonjour,

    A quoi correspond Qtedisp=(qtedisp-qte)

    Si le type dans la base est numérique Qtedisp = " & Integer & "...
    Si le type dans la base est Text Qtedisp = '" & string &"' ...
    merci pour votre répense
    Qtedisp=(qtedisp-qte) = la quantité disponible(quantité actuel dans la table produits)- qte(la quantité entré dans la ligne de datagridview1

    avez vous une idee pour la faire?
    et merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Points : 88
    Points
    88
    Par défaut
    OK je comprends mieux.

    Il faut tous d'abbord récupèrer ces 2 valeures dans des variable
    dim qtedisp as integer = Valeur récupèré de la base de données
    dim qte as integer = valeur récupèré du Gridview
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DGVinto.CommandText = "Update Produits Set Qtedisp=" & (qtedisp-qte).ToString & " where designation='" & designation & "''"

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    salut
    malhereusement le code n'a pas réussi a resoudre le probleme
    il ya pas de message d'erreur mais les quantites restent les memes

    voila le code

    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
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            'Verification De Mode de Paiement (Pour Calculer Le Montant De Timbre)
            If Me.RadioButton1.Checked = True Then Z = 1
            If Me.RadioButton2.Checked = True Then Z = 2
            If Me.RadioButton3.Checked = True Then Z = 3
            If Me.RadioButton4.Checked = True Then Z = 4
    
             'Inserer les informations de la  facture
    Try
                Dim ConStr As String = "Data Source=Riadh;Initial Catalog=StockGuard;Integrated Security=SSPI"
                Dim Conn As New SqlConnection(ConStr)
                Dim SavInto As New SqlCommand
                SavInto.Connection = Conn
                SavInto.CommandType = CommandType.Text
                SavInto.CommandText = "Insert Into Ventes(Code_cli,date_fact,remarque,Paiement)" & _
             "values('" & Me.TextBox4.Text & "','" & Me.DateTimePicker1.Text & "','" & Me.TextBox2.Text & "','" & Z & "')"
    'inserer les details facture
                Dim DGVinto As New SqlCommand
                Dim i, Qte As Integer
                Dim Prix_Unit As Decimal
                Dim ref, designation As String
                Dim qtedispon As Integer
                Conn.Open()
                SavInto.ExecuteNonQuery()
                For i = 0 To DataGridView1.RowCount - 2
    
                    ref = DataGridView1.Item(0, i).Value
                    designation = DataGridView1.Item(1, i).Value
                    Qte = DataGridView1.Item(2, i).Value
                    Prix_Unit = DataGridView1.Item(3, i).Value
                   'recuperer la quantité disponible 
                        Try
                        Dim QteDispo As New SqlCommand
                        Dim connex As New SqlConnection(ConStr)
                        QteDispo.Connection = Conn
                        QteDispo.CommandType = CommandType.Text
                        QteDispo.CommandText = "Select qtedisp From produits"
                        connex.Open()
                        qtedispon = QteDispo.ExecuteScalar()
                        Me.TextBox1.Text = X + 1
                        connex.Close()
                    Catch ex As Exception
                        MsgBox(ex.Message, MsgBoxStyle.Critical)
                    End Try
    'l'insertion des details facture
                    DGVinto.Connection = Conn
                    DGVinto.CommandType = CommandType.Text
                    DGVinto.CommandText = "Insert Into Detailes_Factures(ref,designation,qte,prix_unit,Num_fact) values('" & ref & "','" & designation & "','" & Qte & "','" & Prix_Unit & "','" & TextBox1.Text & "')"
                    DGVinto.CommandText = "Update Produits Set Qtedisp=" & (qtedispon - Qte).ToString & " where designation='" & designation & "''"
                Next
                Conn.Close()
                X = Me.TextBox1.Text
                MsgBox("Nouvelle Facture Inserer Avec Succés", MsgBoxStyle.Information)
                Me.Button1.Enabled = True
                Me.Button4.Enabled = True
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
    
        End Sub
    ou est le probleme SVP?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Remarque bête: tu l'éxecutes ta requête Update?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DGVinto.Connection = Conn
     DGVinto.CommandType = CommandType.Text
    
    DGVinto.CommandText = "Insert Into Detailes_Factures(ref,designation,qte,prix_unit,Num_fact) values('" & ref & "','" & designation & "','" & Qte & "','" & Prix_Unit & "','" & TextBox1.Text & "')"
    
    DGVinto.CommandText = "Update Produits Set Qtedisp=" & (qtedispon - Qte).ToString & " where designation='" & designation & "''"
                
    DGVinto.ExecuteNonQuery()
    Thomas

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    quand j'ai mis le dgvinto.executenonquery l'insertion de les détails facture est impossible et il m'affiche une facture vide

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    ya t'il de solution svp?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Points : 88
    Points
    88
    Par défaut
    Après

    DGVinto.CommandText = "Insert .....
    et
    Après
    DGVinto.CommandText = "Update ....

    Tu dois faire un ExecuteNonQuery

  10. #10
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    salut
    merci a tous qui ont m'aider
    enfin j'ai récreé le code et l'application marche bien
    je vais poster le nouveau code ici apres.
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/07/2014, 16h44
  2. Réponses: 4
    Dernier message: 24/09/2013, 14h02
  3. mise à jour de quantité en stock
    Par imene25 dans le forum Bases de données
    Réponses: 11
    Dernier message: 10/05/2009, 22h45
  4. Réponses: 8
    Dernier message: 10/02/2009, 23h45
  5. Réponses: 5
    Dernier message: 23/09/2008, 14h29

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