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 :

problème de mise à jour au datagridview


Sujet :

VB.NET

  1. #1
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut problème de mise à jour au datagridview
    Bonjour
    voici mon code mais ça marche pas et il me donne pas des erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      con.Open()
                Dim datset As New DataSet1
                Dim da As New SqlDataAdapter("select * from DET_DEVIS", con)
                DataGridView1.DataSource = datset.Tables("DET_DEVIS")
     
                Dim tab As New SqlCommandBuilder(da)
                da.Update(datset.Tables("DET_DEVIS"))
                MsgBox("Enregistrement modifier avec succeé", MsgBoxStyle.Information)
                DataGridView1.DataSource = datset.Tables("DET_DEVIS")
     
                con.Close()
    Merci de m'aider.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ton code n'a pas vraiment de sens ... tu cherches à faire quoi exactement ?

    Déjà, avant d'affecter la table comme DataSource du DataGridView, il faut faire un Fill pour charger les données de la base :

    Ensuite, ça n'a pas de sens de faire la mise à jour de la base (da.Update) immédiatement après avoir chargé les données...

  3. #3
    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
    Et puis il faut te créer ta datatable dans ton dataset...

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Et puis il faut te créer ta datatable dans ton dataset...
    il me semble que c'est automatique quand tu fais le Fill

  5. #5
    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
    Ah ok, je savais pas.

    Par sécurité je continuerai a les ajouter au préalable car je me demande comment il fait si tu as un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select * from camion, Chauffeur Where camion.fk_chauffeur=Chauffeur.id_chauffeur"

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Par sécurité je continuerai a les ajouter au préalable car je me demande comment il fait si tu as un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select * from camion, Chauffeur Where camion.fk_chauffeur=Chauffeur.id_chauffeur"

    Effectivement je sais pas trop comment il s'en sort avec une jointure...

    De toutes façons, en général je fais pas comme ça, je crée juste une DataTable (pas de DataSet) et c'est cette DataTable que je remplis avec le DataAdapter, comme ça y a pas de surprise

  7. #7
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    bonjour tomlev j'ai pas compris ça fait 2 semaine que ce code ça marche pas. voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim build As New SqlCommandBuilder
                con.Open()
                cmd1 = New SqlCommand("select * from DET_DEVIS", con)
                cmd1.ExecuteNonQuery()
                build.DataAdapter = da
                da.SelectCommand = cmd1
                da.Update(ds, "MAJ1")
                Me.DataGridView1.DataSource = ds.Tables("DET_DEVIS")
                MsgBox("Modificatiion est bien effectuer")
                con.Close()
    merci d'avance

  8. #8
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Tu mélanges un peu tout (exécution d'une requète, update)
    Donc, passage OBLIGATOIRE ici:http://plasserre.developpez.com/cour...bases-donnees2

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    bonjour tomlev j'ai pas compris ça fait 2 semaine que ce code ça marche pas. voici mon code
    C'est pas en repostant un bout de code sans donner aucune explication que tu vas obtenir plus de réponses... Et tu n'as pas répondu à ma question : que cherches tu à faire exactement ?

  10. #10
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    Bonjour tomlev merci d'avance bon ce que je veux le faire :
    j'ai des données au datagridview1 et je veux les modifier le nom de la table c'est DET_DEVIS
    merci de votre aide

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    tomlev merci d'avance bon ce que je veux le faire :
    j'ai des données au datagridview1 et je veux les modifier le nom de la table c'est DET_DEVIS
    Toujours pas assez précis

    Bon, j'essaie de deviner :
    - tu as un DataGridView qui est lié à la table DET_DEVIS d'un DataSet
    - l'utilisateur modifie les données dans le DataGridView
    - tu veux mettre à jour la base de données pour enregistrer les modifications faites par l'utilisateur

    C'est bien ça ?

  12. #12
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Toujours pas assez précis
    Bon, j'essaie de deviner :
    Si c'est pas clair dans sa tête, je ne vois pas comment l'aider et encore moins deviner ce qu'il veut faire.

    Encore un fois, un passage sur le cours VB.NET ne ferait pas de mal..... (lien ci-dessus)

  13. #13
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    exactement tomlev et voici mn code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Dim da As New SqlDataAdapter("select * from DET_DEVIS", con)
                'Pour modifier les valeurs changées dans le DataAdapter
                Dim commandebl As New SqlCommandBuilder(da)
                'Mise à jour
                da.Update(ds, "DET_DEVIS")
                'On vide le DataSet et on le 'recharge' de nouveau.
                ds.Clear()
                da.Fill(ds, "DET_DEVIS")
                Me.DataGridView1.DataSource = ds.Tables("DET_DEVIS")
    mais il me donne cette erreur
    Impossible pour Update de trouver TableMapping['DET_DEVIS'] ou dataTable 'DET_DEVIS'

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Elle vient d'où la variable ds dans le code que tu viens de poster ?

  15. #15
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    j'ai pas compris?

  16. #16
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    j'ai pas compris????????????
    C'est bien ce que je disais....

    ds est surement un dataset. Comment l'as-tu créé et rempli?

  17. #17
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    voici mon dernier code mais il reste le même problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim datset As New DataSet1
                Dim da As New SqlDataAdapter("select * from DET_DEVIS", con)
                da.Fill(datset)
                DataGridView1.DataSource = datset.Tables("DET_DEVIS")
                Dim MonCommandBuilderST As New SqlCommandBuilder(da)
                da.UpdateCommand = MonCommandBuilderST.GetUpdateCommand()
                da.Update(ds.Tables("DET_DEVIS"))
                MsgBox("Enregistrement modifier avec succeé", MsgBoxStyle.Information)
                DataGridView1.DataSource = datset.Tables("DET_DEVIS")

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si tu ne réponds pas aux questions qu'on te pose, c'est pas évident de t'aider... Et si en plus ton code change à chaque fois on ne s'en sort plus

    Dans ton bout de code précécent, où était déclarée la variable ds ? Variable locale, membre de la classe... ? Comment était-elle initialisée ?

    Le nouveau code que tu as posté n'a pas vraiment de sens... il ne faut pas créer un nouveau dataset, mais utiliser celui qui est lié au DataGridView.

    En fait je n'ai pas l'impression que tu comprennes vraiment le sens du code que tu écris... as-tu lu un tutoriel avant de te lancer ? VB.NET, c'est pas très compliqué, mais ça ne s'improvise pas non plus...

  19. #19
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    vraiment je suis débutante bon le ds déclare dans un module
    alors qu'est ce que je dois faire?

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    vraiment je suis débutante bon le ds déclare dans un module
    dim ds as new dataset

    alors qu'est ce que je dois faire???
    Bon, on va peut-être finir par y arriver

    Encore une ptite question... Dans ton DataGridView, comment as-tu défini les propriétés DataSource et DataMember ? En principe tu devrais avoir DataSource = ds, et DataMember = "DET_DEVIS"

Discussions similaires

  1. problème de mise à jour au datagridview
    Par najoua01 dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/11/2010, 13h23
  2. Réponses: 1
    Dernier message: 28/02/2007, 10h16
  3. [2000 Server] Problème de mise à jour windowsupdate !!
    Par rohstev dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 24/08/2005, 16h03
  4. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 12h38
  5. problème de mise à jour de BD
    Par tidiane dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/03/2004, 16h32

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