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 :

Créer une liste d'objets [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut Créer une liste d'objets
    Bonjour,
    Je fais un programme orienté objets et après avoir créer mes objets dont voici la classe:

    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
            public class Film
            {
                private string titre;
     
                public string Titre
                {
                    get { return titre; }
                    set { titre = value; }
                }
                private string genre;
     
                public string Genre
                {
                    get { return genre; }
                    set { genre = value; }
                }
                private int lenght;
     
                public int Lenght
                {
                    get { return lenght; }
                    set { lenght = value; }
                }
                private string realisateur;
     
                public string Realisateur
                {
                    get { return realisateur; }
                    set { realisateur = value; }
                }
    je cherche à créer une liste des objets pour ensuite remplir un DataGridView.
    Grosso modo, j'ai ça pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            public class FilmDAO
            {
                public List<Film> GetList()
                {
                    List <Film> Films = new List<Film>();
     
     
     
                    return Films;
                }
            }
    Mais je sais pas faire plus
    après je pensais faire ça pour insérer dans le dataGridView:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.datasource = GetList();
    Merci de votre aide!

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    D'après moi ta méthode GetList devrait être statique car elle ne nécessite pas qu'une instance de la classe soit créée.

    Aussi, d'où récupères-tu tes "Film" ? De la base de données ? Si oui il faut faire une requête SQL et ensuite construire tes "Film" avec les données que cela contient.

    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 static List<Film> GetList()
    {
        List <Film> Films = new List<Film>();
     
        SqlConnection conn = new SqlConnection("...");
        conn.Open();
        SqlCommand cmdAllFilms = new SqlCommand("SELECT * FROM films", conn);
        SqlDataReader reader = cmdAllFilms.ExecuteReader();
        while(reader.Read())
        {
            Film film = new Film();
            film.Titre = reader["titre"];
            // etc..
            Films.Add(film);
        }
        conn.Close();
     
        return Films;
    }
    Idéalement tu pourrais prévoir une méthode sur la classe Film permettant de construire un object "Film" depuis un enregistrement de base de données, ou d'un datareader

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Film {
        // ...
     
        public static Film FromDataReader(SqlDataReader reader){
            Film film = new Film();
            film.Titre = reader["titre"];
            // etc..
            return film;
        }
    }
    ce qui te permettrait de faire 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
    public static List<Film> GetList()
    {
        List <Film> Films = new List<Film>();
     
        SqlConnection conn = new SqlConnection("...");
        conn.Open();
        SqlCommand cmdAllFilms = new SqlCommand("SELECT * FROM films", conn);
        SqlDataReader reader = cmdAllFilms.ExecuteReader();
        while(reader.Read())
        {
            Films.Add(Film.FromDataReader(reader));
        }
        conn.Close();
     
        return Films;
    }
    Donc au final tu binderais ton datasource comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.datasource = FilmDao.GetList();

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Merci beaucoup pour ces quelques explications. J'ai réussi à me débrouiller avec.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai vue que le sujet remonte à 2011, mais il s'agit exactement de ce qu'il me faut, alors autant poster ici plutôt que de faire une nouvelle discussion.
    Dans mon cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    film.Titre = reader["titre"];
    Me donne une erreur "impossible de convertir implicitement le type 'object' en 'string'. Une conversion explicite existe (un cast est-il manquant?)"

    Auriez-vous une solution ?

    Cordialement

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

Discussions similaires

  1. Créer une liste d'objets de template
    Par darkman19320 dans le forum C++
    Réponses: 9
    Dernier message: 04/01/2012, 09h29
  2. Réponses: 1
    Dernier message: 30/03/2011, 22h27
  3. Réponses: 3
    Dernier message: 19/07/2010, 08h42
  4. Créer une liste d'objet spécifiques
    Par Lidden dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/02/2008, 10h26
  5. Créer une liste d'objets statiques dans une classe
    Par crossbowman dans le forum C++
    Réponses: 3
    Dernier message: 13/03/2006, 09h11

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