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 :

DataSet, DataTable et Cie


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Boss
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Boss

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut DataSet, DataTable et Cie
    Bonjour à tous,

    Je viens vers vous car je n'ai pas réussi à résoudre mon problème.

    Voilà, j'ai trois tables:

    Variable avec comme colonnes Nom, Texte
    Relais avec comme colonnes Nom, Taille
    MesRelations qui me donne une relation entre un nom de variable et un nom de relais donc deux colonnes variable et relais.
    (à noter qu'il peut y avoir plusieurs relais pour une même variable, et que des relations peuvent exister sans pour autant être utilisées)

    Je souhaite créer une table Resultat avec les colonnes Relais, Texte, Taille

    celon ce petit algo:

    Pour touts les variables listées dans Variables
    Si présente dans la table MesRelations
    Ajouter à Résultat la ligne: nom du relais correspondant, texte de la variable, taille du relais
    Fin Pour


    Je deviens fou de pas réussir à faire un truc aussi simple en C#.

    J'ai toutes mes tables de créée, elles sont toutes dans le même dataset.

    Dois-je vraiment traiter ligne par ligne colonne par colonne, ou bien une simple requête (merge, fill?) peut suffir ????
    Comment utiliser au mieux la classe relation??


    Aidez-moaaaaaAAa see you plait!



    #edit: j'utilise le designer pour créer tout ça, après j'ai un form de test, avec comme entrées mes tables relais, variable, Relation, et un bouton "Remplir"

  2. #2
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Tes DataSets 'Variables', 'Relais' et 'MesRelations' sont-ils remplis ?

    Si oui, tu peux creer une requete SQL pour la DataTable 'Relais' qui te renvoie la liste des Relais associes a une Variable (tu peux la creer a partir du Designer).

    Un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select R.* 
    From Relais R, MesRelations M
    Where R.Nom = M.Nom and M.Nom = :Nom;
    Cette requete va te demander de saisir un Nom de Variable en parametres. (:Nom)

    Pour cela tu boucles sur ta DataTable 'Variable' et pour chaque ligne, tu executes cette requete qui va remplir une DataTable de Relais associes au nom de variable en cours.

    En gros

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // Creation de la DataTable qui va recevoir le resultat de la requete.
    TableRelais = new RelaisDataTable();
     
    // Creation du TableAdapter qui va executer la requete sur Relais.
    MonDataSet.TableAdapter  MonRelaisTableAdapter = new MonDataSet.TableAdapter();
     
    foreach(MaVariableRow MaVariable in MaVaraiableDataTable.Row)
    {
     
        RelaisDataTable = MonRelaisTableAdapter.RecupRelaisAssocies(MaVariable.Nom);
     
        // A partir de la, pour chaque variable de ta table variable
        // tu as la liste des relais associes, tu peux boucler sur TableRelais
        // et remplir ta table de resultat, je te laisse trouver la fin sinon
        // c'est trop facile...
     
    }
    Tout ce code a mettre dans l'evenement click de ton button 'Remplir'

    Il y a d'autres methodes mais c'est celle ci que j'utilise souvent.
    Cela peut-il t'aider ?
    Contrec

Discussions similaires

  1. DataSet : dataTable.Fill dans un BackgroundWorker déclenche une exception
    Par nicopulse dans le forum Accès aux données
    Réponses: 5
    Dernier message: 21/12/2010, 17h46
  2. Dataset, Datatable en mémoire
    Par Hariost dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/11/2010, 12h19
  3. DataSet , DataTable et DataRow
    Par hazem2410 dans le forum C#
    Réponses: 2
    Dernier message: 11/11/2010, 16h27
  4. Réponses: 2
    Dernier message: 02/07/2009, 13h20
  5. Réponses: 6
    Dernier message: 06/10/2008, 16h31

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