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

C# Discussion :

probleme MAJ .mdb a partir dataset


Sujet :

C#

  1. #21
    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
    Il est préférable de créer un DataTable par Table du SGBD, de le remplir au départ avec tous les enregistrements de la table (si le nombre d'enregistrements n'est pas supérieur à plusieurs dizaines de milliers), de lier DataTable et DataGridView via un BindingSource et de jouer sur la propriété "Filter" du BindingSource pour afficher des extraits de la DataTable. (par exemple : BindingSource1.Filter="RegionName='OUEST'" ).

    Pour les modifications, les faire dans les DataTable permet leur répecution automatique dans le DataGridView. Le DataAdapter permet de gèrer globalement un ensemble de modifications, ajouts, suppressions. Toutefois, pour faciliter la gestion d'erreurs, on effectue généralement un " DataAdapter.Update()" après chaque modif, ajout, suppression d'enregistrement.

  2. #22
    Membre habitué Avatar de LeCygne
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2010
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2010
    Messages : 91
    Points : 159
    Points
    159
    Par défaut
    Bonjour Waspy59

    Le DataSet represente une base de donnée, avec ses tables et ses relations.
    Si vous créez un DataSet par client, il va falloir gerer tous ces DataSet. C'est probablement possible mais à quel prix !
    Vous-vous posez la question de savoir si vous ne devriez pas plutôt faire un DataSet par région pourquoi plus par region que par client ? La problèmatique sera la même. Et s'il y a un client sur plusieurs région et que vous mettez à jours les informations qui lui sont relative...

    Par contre, ce que vous pouvez faire, c'est ne charger que les clients de la region nord au momment ou l'utilisateur selectionne cette region. Pour cela, il faut modifier la requette de selecion des clients en lui ajoutant le parametre region.

    1) Chargement de l'application
    => Chargement de la table des Region regionDataAdapter.Fill(regionDataTable)
    => Bind de la ListBox sur la colonne Nom de cette table.

    2) L'utilisateur selectionne une region
    => Enregistrement des donnees de la region precedement selectionee clientDataAdapter.Update(clientDataTable);
    => Effacement des donnees de la table clientDataTable.Clear();
    => Chargment des clients pour la nouvelle region (Il faut que clientAdapter.SelectCommand soit une commande parametree, dont le parametre est la region. Mise a jour du parametre avec la bonne region, puis: clientDataAdapter.Fill(regionDataTable);

    3) Fermeture de l'application
    => Pour tous les DataAdapter, DataAdapter.Update(laBonneTableDataTable);

  3. #23
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Bonjour,

    Je vais mettre ma m... mais comme on est plus en train de solutionner le problème mais de l'orienter dans sa futur vie de développeur:

    Pourquoi passer par des dataset?

    Je pense à LINQ TO SQL par exemple qui pourrait réconcilier notre ami avec l'accès aux données...

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Points : 64
    Points
    64
    Par défaut
    bonjour isberserk,

    Je vais jetter une oeil a LINQ histoire de pas mourir idiot....

    merci

  5. #25
    Membre habitué Avatar de LeCygne
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2010
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2010
    Messages : 91
    Points : 159
    Points
    159
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Bonjour,

    Je vais mettre ma m... mais comme on est plus en train de solutionner le problème mais de l'orienter dans sa futur vie de développeur:

    Pourquoi passer par des dataset?

    Je pense à LINQ TO SQL par exemple qui pourrait réconcilier notre ami avec l'accès aux données...
    Mais non tu ne mets pas ta m....
    De toute facon la situation restera la même, pour avoir jetter un oeil au code, on voit qu'il y a du travail et du courage qui sont tout à l'honneur de Waspy59, mais avec un manque d'architecture au départ qui se manifeste à la dernière étape.
    Donc avec l'une ou l'autre des solutions, je lui recommande de proceder par étape :

    A) Une seule table :
    1. Importer les données.
    2. Afficher les données.
    3. Modifier les données presentes.
    4. Enregistrer les données modifiées.
    5. Ajouter des données.
    6. Enregistrer les données ajoutées.


    B) Une deuxième tables avec une relation
    1. Importer les données (devenu facile).
    2. Selectionner une donnée de la première table.
    3. Afficher les données de la seconde en fonction de la selection.
    4. Modifier les données (devenu facile).
    5. Ajouter des données (devenu facile).
    6. Enregistrer les données (devenu facile).


    3) n tables avec m relations... (devenu facile).

    Dans tous les cas, bon courage Waspy59, et si vous choissez les DataSet, je me ferais un plaisir de vous aider .

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Points : 64
    Points
    64
    Par défaut
    Bonjour à tous,

    J'ai recommencé mon appli afin qu'elle doit plus propre et utiliser vos recommandations. (tout en restant les datasets que je commence a comprendre... le LINQ je verrai ça plus tard ).

    Je ne manquerai pas de revenir vers vous si je coince

    En tout cas un grand merci à vous pour votre patience et votre aide

    @+

Discussions similaires

  1. MAJ BD Access à partir d'un Dataset
    Par dabe59 dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/03/2010, 23h53
  2. MAJ Table SQL à partir d'un DataSet
    Par Loubna.B dans le forum C#
    Réponses: 2
    Dernier message: 04/11/2009, 12h44
  3. Probleme d'update a partir d'un table adapter
    Par Contrec dans le forum C#
    Réponses: 2
    Dernier message: 18/04/2007, 11h23
  4. Réponses: 2
    Dernier message: 22/03/2007, 18h47
  5. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01

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