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

Windows Forms Discussion :

[C# 2.0][VS2005] [Débutant] Explication sur la gestion de données dans un DataSet


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [C# 2.0][VS2005] [Débutant] Explication sur la gestion de données dans un DataSet
    Bonjour a tous,

    Je viens de commencer à coder sous VisualStudio 2005 et donc de découvrir le monde .Net; je dois avouer que j'ai un peu de mal à tout maitriser en ce qui concerne la gestion des données en mode déconnecté de .net 2:

    J'ai une base Access qui contient deux tables. Je veux afficher *et modifier* les données contenues dans ces tables depuis une petite appli WinForm.

    J'ai créé un DataSet avec deux DataTables chacunes liées à un DatGridView (DGV) sur ma fenetre.
    J'arrive à récupérer le contenu de mes tables et même à afficher le contenu de la seconde selon la selection dans la premiere (merci à VS2005 qui fait tout à notre place ) et même à ajouter des lignes en base.

    Mon problème:

    Mes ajouts se font directement dans la table; pas dans mon DGV, et ne s'affichent donc pas !
    Je voudrais ajouter des lignes à volonté dans le DGV (en local donc) puis faire le commit quand je veux.
    Je précise que j'ai besoin de faire ces ajout *en code* et pas avec les controls par défaut.

    Un tutorial bien fait me va tout aussi bien si vous n'avez pas le temps de m'expliquer en détails...

    Merci d'avance pour tout aide proposée

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [C#][VS2005] Ajout dans un DataGridView
    Re-bonjour

    Je me permet d'insister: peut-etre que ma question était mal posée:

    Comment ajouter des rows dans un DataGridView sans faire l'ajout directement dans la base ?

    Merci d'avance

    --
    Guillaume

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    Ben, c'est pas plus simple que ça: tu ne lie pas ton dataset a ton DGV, et tu le lie que lorsque tu veut faire le commit

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut
    Ton DataSet tu le remplis comment ???

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    Et bien dans le code pardis ^^
    Désolé je n'utilise pas de Dataset ni de DGV, mais le mieux c'est comme je t'ai dit plutot que d'instancier ton Dataset a ton DGV via l'editeur de form , fait le dans le code.
    Pour savoir comment remplir ton dataset avec du code :
    Creer un dataset et remplis le avec l'editeur de form une fois que c'est fait regarde dans ton fichier Form1.Designer.cs et cherche ton Dataset il y aura les instructions pour le remplir dans la fonction initcomponent()

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup !

    Je teste ça et je te tiens au courant

    --
    Guillaume

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut
    Suivant la méthode que tu utilises pour le remplir la réponse varie aussi.

    Si tu utilises un DataAdapter, tu ne feras les changements en BD uniquement lorsque tu feras un DataSet.Update().

    Voilà un autre moyen.

  8. #8
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai pas encore essayé ta solution ekinox17: réunionite surprise
    Je commence ça tout de suite

    Citation Envoyé par L`artiste
    Si tu utilises un DataAdapter, tu ne feras les changements en BD uniquement lorsque tu feras un DataSet.Update().
    Justement, j'utilise des TableAdapters pour mes deux tables.
    Je m'apperçois d'ailleurs que je serais probablement plus compréhensible en donnant plus de détails:
    J'ai demandé à VS de générer les requètes d'ajout et de modification.

    Du coup, je fais mes ajouts avec une méthode "InsertQuery" de mon premier TableAdapter.
    Du coup les données sont ajoutées en base mais n'apparraissent pas dans mon DGV
    C'est peut-être pas du tout la méthode à utiliser... ?

    --
    Guillaume

  9. #9
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bon, en cherchant dans le code généré par VS, j'ai effectivement trouvé le lien avec les données; en gros:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MonBindingSource.DataSource = Mon_DataSet;
    MonBindingSource.DataMember = "Nom_de_ma_table";
     
    DGV.DataSource = MonBindingSource;
    Donc, pour ajouter une ligne, je supprime le lien
    Ensuite, je peux faire sans probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DGV.Rows.Add( une_nouvelle_ligne_precedemment_créée )
    Et ça marche!... sauf que toutes mes données qui avaient été rappartiées automatiquement depuis mon fichier Access ont disparu!
    Donc je vais être obligé de me remplir mon DGV à la main

    Je comprends pas l'interet du mode déconnecté dans ce cas...
    Est-ce que quelqu'un peut me dire ou j'ai sauté une étape SVP ?


    En tout cas, merci pour votre aide ekinox17 et l'artiste

    --
    Guillaume

  10. #10
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bon, en fait, je n'étais pas du tout parti dans la bonne direction !

    Dans le DataSet que VS a créé, on trouve une référence aux tables liée!

    Pour un table "MaTable", un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DataSet.MaTable.AddMaTableRow( Champs_de_MaTable )
    Et hop, c'est fini: les mises_à_jours se font dans le DGV et on peut commiter ces modifs quand on veut !

    Merci de votre aide ekinox17 et L`artiste: sans vous, j'y étais encore demain !

    Une fois de plus, c'est la communauté qui permet d'avancer !
    (surtout quand les tuto manquent!)

    --
    Guillaume, reconnaissant

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

Discussions similaires

  1. pour les débutants : discussion sur la gestion objet GTK
    Par chrtophe dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 27/09/2011, 18h24
  2. [Débutant] Explications sur quelques instructions en Assembleur
    Par voodka2007 dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 01/01/2009, 21h47
  3. Conseils sur la gestion de données
    Par koolkris dans le forum Langage
    Réponses: 2
    Dernier message: 15/10/2007, 16h02
  4. question sur le rafraichissement des données dans la base
    Par vbcasimir dans le forum Bases de données
    Réponses: 8
    Dernier message: 06/06/2005, 12h44
  5. Réponses: 3
    Dernier message: 24/11/2003, 17h41

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