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

ADO.NET Discussion :

Liaison et enregistrement de données avec le TableAdapter


Sujet :

ADO.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Liaison et enregistrement de données avec le TableAdapter
    Je dispose d'une base de données Access 2007 nommée Librairie composée d'une table Ouvrages comportant les champs ISBN, Titre, Auteur,.... Je souhaite afficher la table Ouvrages dans un DataGridView. J'amène le DataGridView dans Form1 ensuite je choisit la source de données et la propriété DataSource se cale sur ouvragesBindingSouurce.
    Jusqu'à présent je n'ai pas encore écrit une seule de code. Je dispose des objets LibrairieDataSet, ouvragesBindingSource et ouvragesTableAdapter.
    Le code généré par VS est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void Form1_Load(object sender, EventArgs e)
        {
          // TODO: cette ligne de code charge les données dans la table 
          this.ouvragesTableAdapter.Fill(this.librairieDataSet.Ouvrages);
        }
    Et à l'exécution, le DGV se remplit des données de la base. Impeccable.
    Les cellules du DGV sont éditables, j'en profite pour faire quelque modifications de données. J'aimerais maintenant répercuter ces modifications sur la base de données physique. Pour ça, je clique sur le bouton implémenté comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        private void button1_Click(object sender, EventArgs e)
        {
          this.ouvragesTableAdapter.Update(this.librairieDataSet.Ouvrages);
        }
    et là, c'est la cata, rien n'est mis à jour! Avez-vous une solution?

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Peux-tu vérifier la valeur renvoyée par la méthode Update et nous indiquer le résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        private void button1_Click(object sender, EventArgs e)
        {
          int n = this.ouvragesTableAdapter.Update(this.librairieDataSet.Ouvrages);
          MessageBox.Show(string.Format("{0} lignes mises à jour", n));
        }

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Vérifie aussi le contenu de ouvragesTableAdapter.InsertCommand.CommandText qui doit contenir "INSERT INTO ...".
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Tomlev : j'ai modifié 2 lignes et il m'affiche 2 lignes mises à jour

    Graffito : comment je fait pour vérifier ça?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Grafffito : le compilateur indique que ouvragesTableAdapter ne contient pas une définition pour InsertCommand

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par dhanikenne Voir le message
    Tomlev : j'ai modifié 2 lignes et il m'affiche 2 lignes mises à jour
    Donc la db est bien mise à jour.

    Le fichier Access fait partie de ton projet ? Si c'est le cas, vérifie sa propriété "Copier dans le répertoire de sortie". A mon avis le fichier DB sur lequel tu travailles est écrasé à chaque fois que tu recompiles...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Oui, c'est exactement ça le problème. Maintenant c'est résolu!

    Un grand merci pour ton aide!

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

Discussions similaires

  1. Enregistrer les données avec Jformer
    Par med_tijani dans le forum jQuery
    Réponses: 1
    Dernier message: 01/12/2011, 16h45
  2. Enregistrement de données avec base de temps
    Par lio59 dans le forum Windows Forms
    Réponses: 19
    Dernier message: 12/10/2011, 13h44
  3. Enregistrement de données avec visual studio 2005
    Par elgigante2010 dans le forum Débuter
    Réponses: 1
    Dernier message: 12/09/2011, 16h34
  4. enregistrer les données avec le binding navigateur
    Par adel.87 dans le forum Débuter
    Réponses: 11
    Dernier message: 08/10/2008, 16h15
  5. Réponses: 18
    Dernier message: 10/07/2006, 13h42

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