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 :

Comment créer une classe pour stocker objets personnalisés


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Comment créer une classe pour stocker objets personnalisés
    Bonjour à tous,
    j'aimerais créer plusieurs classes mais moi et la POO j'ai vraiment du mal.
    Pour info ces classes me serviront pour stocker toutes les propriétés qui constituent les tables, colonnes... etc , tous ce qui décrient les tables d'un fichier Access .Mdb, ceci afin de pouvoir recréer le fichier depuis le code et également pour manipuler le nom des champs dans le code plus facilement. (Je pourrait déposer un controle Dataset typé sur ma feuille en mode design, mais j'ai choisi de tout faire par le code).

    Pour l'instant j'ai crée une classe colonne comme ceci :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    ' Ne pas oublier d'importer la reference : Microsoft ADO Ext. 2.8 for DDL and Security
    Public Class Colonne
     
        Private _Nom As String
        Public Property nom() As String
            Get
                Return _Nom
            End Get
            Set(ByVal value As String)
                _Nom = value
            End Set
        End Property
     
        Private _Type As ADOX.DataTypeEnum
        Public Property Type() As ADOX.DataTypeEnum
            Get
                Return _Type
            End Get
            Set(ByVal value As ADOX.DataTypeEnum)
                _Type = value
            End Set
        End Property
     
        Private _Size As Integer
        Public Property Size() As Integer
            Get
                Return _Size
            End Get
            Set(ByVal value As Integer)
                _Size = value
            End Set
        End Property
     
    End Class
    Une classe colonnes qui contient ma collection de colonne comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Class Colonnes
        Inherits List(Of Colonne)
      End Class
    J'aimerais savoir créer une classe Table que je puisse utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim MaCollectiondeColonnes as New Colonnes
    MaTable.add (MaCollectiondeColonnes)
    J'aimerais aussi pouvoir accéder à chaque propriétés des colonnes à partir de leur nom :
    En gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    table1.ColonneName1 'me retourne un string "ColonneName1"
    table1.ColonneName1.Size ' me retourne un Integer = 20
    j'ai trouvé ce type de collection qui correspondrait à ce que je veux faire mais comment l'inscrire dans ma classe ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim Colonnes As New SortedList(Of String, Colonne)
    Désolé si je mélange un peu tout mais comme vous pouvez le voir je ne sais du tout manipuler les classes et j'aimerais vraiment arriver à les écrire.
    J'espère que vous voyez l'idée et que vous pourrait m'aider.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, n'ayant eu aucune réponse je me permets de reformuler et préciser ma demande.
    Aujourd'hui dans mon code j'utilise des structures pour accéder facilement aux nom de tables et de colonnes d'une BDD. Par exemple : Tables.Table1 ou Colonnes.Colonne1 pour obtenir les valeurs string ("Table1" et "Colonne1"), c'est pratique puisque je peux accéder aux nom de tables et de colonnes directement dans l'intelisense de l'IDE et evite beaucoup de risque d'erreur.
    Voici la structure (c'est la même chose pour les colonnes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Public Structure Tables
            Const Table1 As String = "Table1"
            Const Table2 As String = "Table2"
            Const Table3 As String = "Table3"
         End Structure
    Problème, je ne peux pas utiliser ce principe pour stocker les type de champs et leurs tailles c'est pourquoi je souhaite créer des classes. Le problème que je rencontre est comment accéder à un élément par son Nom ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, J'ai fait ceci. C'est un bon début je pense mais on doit surement pouvoir faire mieux et surtout je n'arrive pas à accéder à une colonne en particulier à partir de son nom :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        Public Structure Colonne
            Public Nom As String
            Public type As ADOX.DataTypeEnum
            Public size As Integer
        End Structure
        Public Structure Tables
            Public Colonne1 As Colonne
            Public Colonne2 As Colonne
            Public Colonne3 As Colonne
        End Structure
        Dim List As List(Of Tables)
     
        Public Sub Test()
            Dim MaTable As New Tables
            MaTable.Colonne1.Nom = "Toto"
            MaTable.Colonne1.type = DataTypeEnum.adChar
            MaTable.Colonne1.size = 10
            List.Add(MaTable)
     
            MaTable.Colonne2.Nom = "Toto1"
            MaTable.Colonne2.type = DataTypeEnum.adChar
            MaTable.Colonne2.size = 20
            List.Add(MaTable)
     
    ' Pour accéder à une propriété d'une colonne à partir de son index :
            MsgBox(List(0).Champ1.Nom)
    ' Pour accéder à une propriété d'une colonne à partir de son nom :
    ????????
        End Sub

    Merci beaucoup si vous pouvez m'aider sur ce point en particulier.

  4. #4
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Bonjour,

    peut être que l'Entity Framework résoudrait tes problèmes. En effet, tu peux générer les objets dont tu parles à partir de ta base de données en quelques clics..
    J’ai des questions à toutes vos réponses!

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/01/2010, 23h21
  2. Réponses: 10
    Dernier message: 26/03/2008, 22h37
  3. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  4. [VB]Comment créer une propriété pour un activex
    Par darksantor dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/06/2006, 21h17
  5. Réponses: 7
    Dernier message: 29/07/2005, 09h51

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