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 :

affichage données d'une table dans une listbox dés l'ouverture de l'IHM


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut affichage données d'une table dans une listbox dés l'ouverture de l'IHM
    bonjour à tous,

    voila j'ai créer une table de données que j'ai connecter a mon projet winform en c# et je voudrai afficher une colonne de cette table dans une listboxdés l'uoverture de la fenetre pendant l'exécution. J'ai écrit sa, ms sa ne m'affiche rien :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public string connStr = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=DBA-SRV;UID=user;DATABASE=base-fp;Password=****";
            public OdbcConnection oConn;
     
            public Form1()
            {
                oConn = new OdbcConnection(connStr);
     
                InitializeComponent();
     
                try
                {
                    oConn.Open();
                    Console.WriteLine("Successfully connected to the data base");
     
                    OdbcCommand oComm = new OdbcCommand();
                    oComm.Connection = oConn;
                    oComm.CommandText = "Select * from Base-FP";
                    OdbcDataReader oReader = oComm.ExecuteReader(CommandBehavior.CloseConnection);
                    while (oReader.Read())
                    {
                        lbAffichage.Items.Add(oReader[1].ToString());
                    }
                    Console.Read();
                }
                catch (OdbcException caught)
                {
                    Console.WriteLine(caught.Message);
                    Console.Read();
                }
                finally
                {
                    oConn.Close();
                    oConn = null;
                }
     
     
            }
     
            private void lbAffichage_SelectedIndexChanged(object sender, EventArgs e)
            {
     
            }
     
     
        }
    }
    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Ton reader renvois des records?
    Tu as testé la requete sur la Base de donnée?
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    bjr,

    dsl pour le retard et merci pr ta reponse! en fait au lieu de mettre le nom de ma table (postes) dans la commandeText j'avais mi le nom de ma bas ("base-fp").

    Mais maintenan me vola avce autre chose : j'ai crée une datagridview avec 5 colonnes mais g du mal a afficher les données de ma table dans la datagridview..
    voii mon code :
    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
    36
    37
    38
    39
    40
    41
    public Form3()
            {
                oConn = new OdbcConnection(connStr);
                InitializeComponent();
     
                for (int j = 0; j < dataGridView1.Rows.Count; j++)
                {
                    if (j % 2 == 0)
                        dataGridView1.Rows[j].DefaultCellStyle.BackColor = Color.Gray;
                    else
                        dataGridView1.Rows[j].DefaultCellStyle.BackColor = Color.White;
                }
     
     
     
                try
                {
                    oConn.Open();
                    Console.WriteLine("Successfully connected to the data base");
     
                    OdbcCommand oComm = new OdbcCommand();
                    oComm.Connection = oConn;
                    oComm.CommandText = "Select NomPoste from postes";
                    OdbcDataReader oReader = oComm.ExecuteReader(CommandBehavior.CloseConnection);
                    while (oReader.Read())
                    {
                       //je ne sais pas quoi mettre ici 
                    }
                    Console.Read();
                }
                catch (OdbcException caught)
                {
                    Console.WriteLine(caught.Message);
                    Console.Read();
                }
                finally
                {
                    oConn.Close();
     
                }
            }
    mercii

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    bonjour,
    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
     
    try
                    {
                        oConn.Open();
                        Console.WriteLine("Successfully connected to the data base");
     
                        OdbcCommand oComm = new OdbcCommand();
                        oComm.Connection = oConn;
                        oComm.CommandText = "Select NomPoste from postes";
                        OdbcDataReader oReader = oComm.ExecuteReader(CommandBehavior.CloseConnection);
                        while (oReader.Read())
                        {
                            dataGridView1.Rows.Add(oReader[0], "colonne 2", "colonne 3", "colonne 4", "colonne 5");
                        }
                        //c'est mieux de placer le code de mise en couleur une fois qu'on a des lignes dans le datagridview :)
                        for (int j = 0; j < dataGridView1.Rows.Count; j++)
                        {
                            if (j % 2 == 0)
                                dataGridView1.Rows[j].DefaultCellStyle.BackColor = Color.Gray;
                            else
                                dataGridView1.Rows[j].DefaultCellStyle.BackColor = Color.White;
                        }
                        Console.Read();
                    }
                    catch (OdbcException caught)
                    {
                        Console.WriteLine(caught.Message);
                        Console.Read();
                    }
                    finally
                    {
                        oConn.Close();
     
                    }
    je pense que cela s'utilise comme ça.
    Toutefois j'ai une question : pourquoi 5 colonnes sur le datagridview alors que ta requete ne remonte qu'une colonne ?
    Ne sachant pas j'ai rempli les colonnes par "colonne 2" "colonne 3" pour te montrer la logique.

    Tu peux également remplir un datagridview comme cela :

    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
     
    while (oReader.Read())
                        {
                            DataGridViewRow row = new DataGridViewRow();
                            DataGridViewTextBoxCell tbc_1 = new DataGridViewTextBoxCell();
                            tbc_1.Value = oReader[0].ToString();
                            DataGridViewTextBoxCell tbc_2 = new DataGridViewTextBoxCell();
                            tbc_2.Value = "colonne 2";
                            DataGridViewTextBoxCell tbc_3 = new DataGridViewTextBoxCell();
                            tbc_3.Value = "colonne 3";
                            DataGridViewTextBoxCell tbc_4 = new DataGridViewTextBoxCell();
                            tbc_4.Value = "colonne 4";
                            DataGridViewTextBoxCell tbc_5 = new DataGridViewTextBoxCell();
                            tbc_5.Value = "colonne 5";
                            row.Cells.Add(tbc_1);
                            row.Cells.Add(tbc_2);
                            row.Cells.Add(tbc_3);
                            row.Cells.Add(tbc_4);
                            row.Cells.Add(tbc_5);
                            dataGridView1.Rows.Add(row);
                        }
    // a utiliser si les colonnes ne sont pas des dgvtextboxcell mais des dgvimagecell ou dgvcomboboxcell

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merci bcp je vais essayer sa !!

    en fait je suis debutante en c# et base de données dnc la ma table n'est pas complete du tout je fais juste des essais pour savoir manipuler, je n'ai pas encor la bdd finale

  6. #6
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    sa marche super bien la premiere methode merci bcp !!!!

    par contre j'aimerai que la colonne de latable (oReader[1])que j'affiche dans la datagrid s'affiche dans la 3eme colonne de la datagrid...

    que dois-je ajouter ?

    merci encore

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (oReader.Read())
    {
     
        dataGridView1.Rows.Add(oReader[0], "colonne 2", oReader[1], "colonne 4", "colonne 5");
    }
    De rien c 'est avec plaisir. Il faut que tu comprennes ce que tu fais ! ^^
    C'est très simple :
    dataGridView1 est ton objet datagrdiview
    .Rows te donne accès aux lignes du datagrdiview
    Rows.Add() permet d'ajouter une ligne.
    Si tu ouvres la parenthèse de la fonction Add tu vois qu'elle est surchargée (on peut l’appeler avec plusieurs type de paramètres)
    De la manière dont elle est appelée dans le code ci-dessus le paramètre est du type "params object[]" c'est à dire que tu peux lui passer autant d'objet que tu veux; ou plutôt autant d'objets qu'il y a de colonnes sinon tu auras une exception.

    Donc dans ton code .Add(oReader[0]) ajoute une ligne à 1 colonne avec la valeur du champ à la position 0 de la table contenue dans le reader.
    Dans un dgv à 5 colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Add("valeur de la colonne 1","valeur de la colonne 2","valeur de la colonne 3",valeur de la colonne 4","etc...");

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merci je comprend mieu le fonctionnement

    mais dans ce cas, vu que je ne veux pas que mes deux premiere colonne de la datagrid soit rempli voila ce que j'ai fait mais sa me semble un peu bizarre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(oReader.Read())
                   {
                       dataGridView1.Rows.Add("","",oReader[0]);
                   }

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    La manière est bonne.
    Le tout est de savoir pourquoi tu dois laisser ces deux colonnes vides... Sont-elles vraiment utiles ?

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Une fois que j'aurai mis en place la base de données finale avec tte les info necessaire, elles seront utiles

    merci bcp!!
    a++

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Comment placer une image dans une table de une base de données
    Par Arnold Falanga dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/07/2012, 09h29
  3. Exporter les données d'une table dans une table plus grande
    Par pierricktpt dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/04/2012, 15h20
  4. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  5. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29

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