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 :

Une collection dans une méthode


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut Une collection dans une méthode
    Bonjour,

    Je finalise mes PTI de BTS et je suis confronté à un probléme concernant les collections.

    J'ai un catalogue qui contient une collection de partitions musicales et qui affichent une collection de tablatures (partitions) correspondant à une année qu'aura saisie l'utilisateur dans une zone de texte.

    Les difficultés rencontrées :

    - Je ne trouve pas la formule permettant de calculer le nombre total de partition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each UnePartition In ....
    - Je ne sais pas comment gérer l'affichage de ma collection. J'aimerai le mettre dans un DatagridView mais je ne vois pas comment faire ...

    - Dans la fonction je voulais mettre 'textbox1.text' qui est l'année que l'utilisateur selectionne. Cependant il ne m'accepte que 'textbox1'. Lorsque je rajoute le '.text' il me met une erreur.


    J'ai mis en pièce jointe la partie du diagramme de classe qui nous intéresse.

    Voici la fonction :

    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
    18
    19
      Public Function AnnéeCatalogue(ByVal textbox1) As ObjectModel.Collection(Of PARTITION)
     
            Dim UnePartition As PARTITION
            Dim MaColl As ObjectModel.Collection(Of PARTITION)
     
            For Each UnePartition In .... :ccool:
     
     
     
                If (UnePartition.GetDatePart.Year = textbox1.text) Then
     
                    MaColl = MaColl + UnePartition
     
                End If
     
            Next
     
            Return (MaColl)
        End Function
    Votre aide me sera très utile

    Merci
    Images attachées Images attachées  

  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 du VB.net ce code ???

    ObjectModel.collection(of T) je connais pas

    Par contre je connais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Collections.Generic.List(Of T)
    Ensuite pour ajouter un membre à ma collection j'utilise la méthode add pas "+"

    Pour avoir le nombre d'éléments dans ma collection j'utilise la méthode count


    Passer l'attribut text d'un textbox à une méthode c'est passer un variable de type String.

    Pour finir la façon très simple d'afficher une collection dans un datagridview c'est d'implémenter une system.componentmodel.bindinglist(Of T) et de la synchroniser avec la List(Of T).

    Puis quand on veut afficher la collection on écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datagridview1.datasource=Maliste.bindinglistofmonobjet

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    Merci de tes précisions

    Mais je suis encore novice en VB.NET et je ne comprend pas tout.

    Je maitrise les algorithme sur papier mais une fois que je suis sur machine, j'ai du mal a comprendre toutes les fonctionnalités du programme et comment les utiliser. Mais la tu me dira faut lire la doc xD


    Ensuite pour ajouter un membre à ma collection j'utilise la méthode add pas "+"
    Nickel, grace à cela j'ai pu mettre un code propre qui ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MaColl = MaColl.Add(UnePartition)
    Passer l'attribut text d'un textbox à une méthode c'est passer un variable de type String.
    Alors la je vois pas trop ce que je dois faire :s

    Dois-je laisser ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Public Function AnnéeCatalogue(ByVal textbox1)
    Pour finir la façon très simple d'afficher une collection dans un datagridview c'est d'implémenter une system.componentmodel.bindinglist(Of T) et de la synchroniser avec la List(Of T).
    Comment dois-je procéder pour implémenter system.componentmodel.bindinglist(Of T) ?

    Je n'est pas de List(Of T) ... enfin si j'en est mi une dans la classe 'Catalogue' mais je vois pas comment la synchroniser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Class Catalogue
     
    Inherits List(Of PARTITION)
        Dim Lespartitions As ObjectModel.Collection(Of PARTITION)
    ...
    Merci !

    Autre question :

    J'aimerai utiliser une Base de données, SQL Serveur ou Access (le plus rapide de preference) . J'ai lu beaucoup de documentation (Notamment les vidéos De Windows) mais je ne sais toujours pas comment relier ma base de données à mon diagramme de classe.

    Par exemple si vous regardez mon diagramme (joint au 1er message) j'aimerai réaliser le genre de méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       Public Function NbPagesTotal() As Integer
     
            Dim resultat As Integer
            Dim UnePartition As PARTITION
     
            For Each UnePartition In PARTITION.count  
                   ' UnePartition.GetNbPages devra contenir le nombre de page de la nieme ligne de la base de données
                resultat = resultat + UnePartition.GetNbPages
            ' Dois je utiliser les jeux d'enregistrement et comment ?
            Next
     
            Return (resultat)
     
        End Function
    PS : VS2008 me souligne PARTITION.Count avec le message d'erreur :
    L'expression est du type integer qui n'est pas un type collection
    Merci infiniement !!!

    A bientot

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    PS : VS2008 me souligne PARTITION.Count avec le message d'erreur : L'expression est du type integer qui n'est pas un type collection
    Ben ca parait assez logique, PARTITION.count est un nombre. Si tu fais une boucle for each, il te faut une liste d'éléments, et pas un nombre. C'est exactement ce que te dit le message d'erreur. Après je ne sais pas ce que tu vuolais faire.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    Exactement. Il me fallait mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Lespartitions As ObjectModel.Collection(Of PARTITION)
    ...
     For Each UnePartition In Lespartitions
    ...
    Merci Flamby38

    Répondez à mon deuxieme message svp, c'est long à lire mais ca m'aiderai grandement

    Amicalement,

    Benji806

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    J'aimerai utiliser une Base de données, SQL Serveur ou Access (le plus rapide de preference) . J'ai lu beaucoup de documentation (Notamment les vidéos De Windows) mais je ne sais toujours pas comment relier ma base de données à mon diagramme de classe.
    je ne comprends pas ce que tu appelles "relier ma base de données à mon diagramme de classe", la base de données n'est pas un élément que tu vas programmer, c'est juste un endroit ou tu vas faire du stockage de données. Tu vas donc lire et écrire dans des tables SQL, mais avant ca tu dois créer ces tables SQL, que ce soit sous access ou SQL server c'est la même chose, la première étape c'est de structurer ta base de données. Si tu n'as pas la moindre idée de comment le faire je te conseille d'aller poser la question sur le forum "Conception", ils t'aideront a organiser tes données de manière logique si tu leur expose clairement ce que tu veux stocker comme données.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Hello ^^

    Tu ne peux pas insérer dans une bdd un objet à proprement parlé. Le mieux que tu aies à faire, c'est de créer une table "Partition" qui contient les attributs d'une partition.

Discussions similaires

  1. [2.x] Une collection dans une collection ?
    Par Crackerz dans le forum Symfony
    Réponses: 2
    Dernier message: 25/08/2014, 21h22
  2. Réponses: 4
    Dernier message: 04/07/2010, 16h44
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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