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

Accès aux données Discussion :

Comment utiliser BindingSource.AddNew?


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 32
    Points
    32
    Par défaut Comment utiliser BindingSource.AddNew?
    Bonjour tout le monde. J'essaye de faire du databinding, et j'avance à la vitesse d'un escargot en surdose de tranquilisants...

    Pour pouvoir facilement se balader entre les enregistrements, j'utilise des bindingsources. Pour naviguer et mettre à jour les enregistrements existant dans ma base, je n'ai aucun problème: la base de donnée est bien mise à jour. En revanche, pour créer un nouvel enregistrement, je n'y arrive pas...

    Actuellement, j'utilise la méthode BindingSource.AddNew. Un nouvel élément est bien créé dans ma BindingSource, mais pas dans la base de donnée...

    Pourquoi? Comment faire? Merci par avance pour vos réponses...

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    le BindingSource est un composant utilisé en mode déconnecté.
    Lorsque tu utilises la méthode AddNew, tu insère un nouvel élément dans ton DataSource. Mais ton DataSource est en mode déconnecté.
    Ensuite si tu souhaites que tes modifications soit reportées dans ta base de données, tu dois les sauvegarder en utilisant par exemple la méthode Update d'un DbDataAdapter.

    Ca va ?
    C'est plus clair ?

    A bientôt

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 32
    Points
    32
    Par défaut
    Merci pour ta réponse...

    Ce qui m'étonnais, c'est que lorsque je réalise une saisie sur un enregistrement déjà existant, la base de donnée est bien mise à jour, et ce sans utiliser de méthode particulière (tel qu'un datatable.update)

    La méthode DataAdapter.Update ne suffit pas...

    En fait, après l'utilisation de BindingSource.AddNew, il faut:
    • utiliser la méthode BindingSource.EndEdit...
    • utiliser la méthode Datatable.Update


    Voilà! Résolu!

  4. #4
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Ce qui m'étonnais, c'est que lorsque je réalise une saisie sur un enregistrement déjà existant, la base de donnée est bien mise à jour, et ce sans utiliser de méthode particulière
    Tu es sûr de ça ?
    C'est curieux, selon moi ,il y a forcément l'appel à DbDataAdapter.Update un moment ou l'autre.
    Si tu modifies les données dans ta DataSource, étant que tu es en mode déconnecté, les modifications, ajouts et suppressions ne sont pas reportés dans la base de données.

    (tel qu'un datatable.update)
    Tu voulais certainement dire DbDataAdapter.Update.

    En fait, après l'utilisation de BindingSource.AddNew, il faut:

    * utiliser la méthode BindingSource.EndEdit...
    * utiliser la méthode Datatable.Update
    Lors de ma précédente réponse, j'avais commencé par te parler de la méthode EndEdit. Je n'étais plus sûr de moi et je suis allé voir dans la MSDN qui précise que si tu fais un appel à AddNew, EndEdit est automatiquement appelé.

    BindingSource.AddNew, méthode

    Bye

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Pilloutou
    Tu es sûr de ça ?
    C'est curieux, selon moi ,il y a forcément l'appel à DbDataAdapter.Update un moment ou l'autre.
    Sur et certain...

    Citation Envoyé par Pilloutou
    Tu voulais certainement dire DbDataAdapter.Update.
    DbDataAdapter.Update est la méthode générique

    Citation Envoyé par Pilloutou
    Lors de ma précédente réponse, j'avais commencé par te parler de la méthode EndEdit. Je n'étais plus sûr de moi et je suis allé voir dans la MSDN qui précise que si tu fais un appel à AddNew, EndEdit est automatiquement appelé.

    BindingSource.AddNew, méthode

    Bye
    Oui, je l'avais bien lu avant. Le truc, c'est qu'il faut faire un update en plus, ce dont je n'est pas besoin avec les autres enregistrements...

    Les voix du framework sont inpénétrables....

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/12/2010, 17h06
  2. Comment utiliser proprement le BindingSource.AddNew()
    Par Fikou-Sama dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/08/2009, 23h01
  3. Réponses: 4
    Dernier message: 30/10/2006, 16h46
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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