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 :

Refléter les changements de mon dataset sans acceptchanges() et avant update()


Sujet :

VB.NET

  1. #1
    Membre confirmé Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Par défaut Refléter les changements de mon dataset sans acceptchanges() et avant update()
    Alors tout est dans la question.


    Je souhaiterais récupérer les modifications faites sur mon dataset à travers mon formulaire de données. Connaitre les modifications du dataset va me permettre d'appliquer ou non des validations (errorProvider) dans mon formulaire.

    Le problème est que si je fais appel à accepchanges : mon dataset va être à jour et va refléter toutes mes modifications. Je saurais donc dans ce cas faire appel uniquement aux validations sur les champs dont j'ai besoin. Mais après cela impossible de mettre à jour la base de données puisque le accepchanges() est passé par là!

    Par contre si je ne fais pas appel à accepchanges mon dataset ne reflète pas les modifications appliquées depuis mon formulaire sur le dataset et je ne sais donc pas exactement sur quels champs je vais devoir faire des validations avec errorProvider.


    La solution qui fonctionne et de faire d'abord appel à Update(). La base est à jour , mon dataset également. Et je peux donc appliquer mes validations sur les champs dont j'ai besoin et signaler ensuite grace à errorProvider à l'utilisateur d'eventuelles erreurs. MAIS les modifications en base ont déjà été effectuées. Ma validation de formulaire qui était censé bloquer l'utilisateur à faire des conneries se transforme en simple avertisseur. Pas idéal comme démarche.


    Si quelqu'un m'a suivi j'aimerais bien savoir ou est ce que je m'y prends mal svp .

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    C'est toute la problématique qui découle de l'utilisation de dataset pour faire des mises à jour.

    Si comme moi on utilise le dataset uniquement pour afficher les données, et que l'on construit une couche objet métier qui permet de réaliser les deux interfaces (affichage et base de donnée) il suffit d'intercaler une fonction de vérification des attributs de l'objet avant envoi de la requête de MAJ pour réaliser ce que vous souhaitez.

  3. #3
    Membre confirmé Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Par défaut Merde !
    Ah ok donc mauvaise nouvelle pour moi a priori je ne pourrais pas m'en sortir facilement

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Pourquoi pas facilement ?

    Admettons que je veuille gérer des personnes avec leur nom et prénom.

    J'ai une BD avec une table personne, un champs nom, un champs prénom et un champs numérique qui est la clef primaire.
    Je construis un objet personne qui a comme propriété Id_Personne, nom, prénom.
    Je dessine un formulaire avec un label qui affichera l'ID_Personne, et deux textbox, pour nom et prénom.

    Mon objet prénom aura des méthodes:
    Affiche(myform) qui fera quelque chose comme
    textboxprenom.text=mapersonne.prenom
    ...

    Enregistre, modifie, supprime ...

    Et dans la méthode Enregistre et modifie je contrôle mes valeurs
    Si mapersonne.prenom="" alors message impossible d'enregistrer sans prénom etc ...

    Maintenant on peut appliquer cela à une collection de personne, il suffit d'instancier une classe qui implémente une collection de personne (pour ma part j'ajoute aussi une bindinglist c'est pratique pour les listeview).

    Et le dataset dans tout cela ???

    Quand je cherche une personne, je fais une requête sur la BD j'obtiens un dataset qui va contenir les attributs de la personne cherchée, ma classe personne contiendra une fonction Affecte(row as datarow) qui va initialiser mon instance d'objet avec les valeurs issues du dataset.

    Je vois pas ce qu'il y a de compliqué d'un point de vue vb.net, après le fait de concevoir en objet c'est un peu plus compliqué (quoi que) mais pour ça il y a des bonnes références de lecture sur le forum UML.

  5. #5
    Membre confirmé Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Par défaut
    Pour le principe je te suis y a pas de soucis.

    Mais en pratique j'ai beaucoup plus de tables que celles énoncés dans mon premier post. Ça me fait pas mal de boulot en plus pour gérer une classe pour chaque table.



    Merci pour tes réponses en tous les cas.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/04/2009, 10h34
  2. Réponses: 4
    Dernier message: 24/11/2008, 13h13
  3. Réponses: 1
    Dernier message: 27/02/2008, 08h59
  4. Comment fermer un classeur sans enregistrer les changements (dans IE) ?
    Par tinftinf dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/08/2007, 13h34
  5. Passer des valeurs dans mon actionform sans les afficher
    Par tonito53 dans le forum Struts 1
    Réponses: 6
    Dernier message: 04/01/2007, 11h36

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