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 :

Problème de combobox et Mysql


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut Problème de combobox et Mysql
    Donc voici mon problème.

    J'essaie de lister le contenu d'une table d'une base de donné MySql vers un combobox pour que l'usager puisse faire la sélection.

    J'ai esseyé deux facon différente de le peupler sans résultat, j'ai aucune erreur, sauf que le combobox est vide.

    Première tentative :

    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
     
            public static void fillComboBox(ComboBox ComboName, string SelectTable)
            {
                DataSet ds = new DataSet();
                string ConnectionStr = "Database=" + ConfigurationManager.AppSettings["DataBase"] + ";Data Source=" + ConfigurationManager.AppSettings["Server"] + ";User Id=" + ConfigurationManager.AppSettings["UserName"] + ";Password=PASSWORD";
                string Query = "SELECT ID, Nom, Prenom FROM " + SelectTable;
                MySqlConnection SqlCnx = new MySqlConnection(ConnectionStr);
                MySqlDataAdapter myAdapt = new MySqlDataAdapter(Query, SqlCnx);
                try
                {
                    SqlCnx.Open();
                    myAdapt.Fill(ds, "User");
                    int numero_righe = ds.Tables[0].Rows.Count;
                    for (int i = 0; i < numero_righe - 1; i++)
                    {
                        ComboName.Items.Add(ds.Tables[0].Rows[i][0]);
                    }
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("MySql Error : " + Ex.Message, "MySql Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                }
                finally
                {
                SqlCnx.Close();
                SqlCnx.Dispose();
                }
            }
    Au commencement j'ai esseyé ceci car je l'ai déja utiliser avec C# pour pocket pc et SqlCe et cela fonctionnait.

    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
     
            public static void fillComboBox(ComboBox ComboName, string SelectTable)
            {
                string ConnectionStr = "Database=" + ConfigurationManager.AppSettings["DataBase"] + ";Data Source=" + ConfigurationManager.AppSettings["Server"] + ";User Id=" + ConfigurationManager.AppSettings["UserName"] + ";Password=PASSWORD";
                string Query = "SELECT ID, Nom, Prenom FROM " + SelectTable;
                MySqlConnection SqlCnx = new MySqlConnection(ConnectionStr);
                MySqlCommand myCommand = new MySqlCommand(Query, SqlCnx);
                MySqlDataReader myReader = null;
                try
                {
                    SqlCnx.Open();
                    myReader = myCommand.ExecuteReader();
                    while (myReader.Read())
                    {
                        item itm = new item();
                        itm.Text = myReader.GetValue(1).ToString() + ", " + myReader.GetValue(2).ToString();
                        itm.Value = myReader.GetValue(0).ToString();
                        ComboName.Items.Add(itm);
                    }
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("MySql Error : " + Ex.Message, "MySql Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                }
                finally
                {
                myReader.Close();
                myReader.Dispose();
                SqlCnx.Close();
                SqlCnx.Dispose();
                }
            }
    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
     
    public class item
            {
                #region variable de class
                private string _Text = string.Empty;
                private object _Value = null;
                #endregion
     
                #region constructeur
                public item()
                { }
                public item(string text, Object val)
                {
                    _Text = text;
                    _Value = val;
                }
                #endregion
     
                #region proprietes
                public string Text
                {
                    get { return _Text; }
                    set { _Value = value; }
                }
                public Object Value
                {
                    get { return _Value; }
                    set { _Value = value; }
                }
                #endregion
                public override string ToString()
                {
                    return _Text;
                }
            }
    Voila je ne comprend pas pourquoi le combo box est vide, pourtant la connection ce fait bien car si j'entre de mauvaise information comme serveur, user, password cela cause des erreurs.

    Le seconde facon je l'ai utiliser a plusieurs reprise sur pocket pc et SqlCe cependan peut être que ce n'est pas correct pour une application win et mysql.

    Avez vous une idée ???

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Bon j'ai testé avec la doc de morpheus (http://morpheus.developpez.com/mysqldotnet/) et le datagrid est bien rempli par les bonnes informations.

    Donc mon problème est de la facon que j'utilise pour remplire mon combobox.

    Je suis toujours ouvert au commentaire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Bon mon comboBox comprte des informations, j'ai procédé 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
     
            public static void fillComboBox(ComboBox ComboName, string SelectTable)
            {
                MySqlConnection SqlCnx = new MySqlConnection();
                MySqlDataAdapter myAdapter = new MySqlDataAdapter();
                DataSet ds = new DataSet();
                string ConnectionStr = "Database=" + ConfigurationManager.AppSettings["DataBase"] + ";Data Source=" + ConfigurationManager.AppSettings["Server"] + ";User Id=" + ConfigurationManager.AppSettings["UserName"] + ";Password=PASSWORD";
                string Query = "SELECT ID, Nom, Prenom FROM " + SelectTable;
                SqlCnx.ConnectionString = ConnectionStr;
                try
                {
                    SqlCnx.Open();
                    myAdapter.SelectCommand = new MySqlCommand(Query, SqlCnx);
                    myAdapter.Fill(ds, "User");
                    ComboName.DataSource = ds.Tables["User"];
                    ComboName.DisplayMember = "Nom";
                    ComboName.ValueMember = "ID";
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("MySql Error : " + Ex.Message, "MySql Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                }
                finally
                {
                myAdapter.Dispose();
                SqlCnx.Close();
                SqlCnx.Dispose();
                }
            }
    Le combo box contient le text a afficher et je peux sortir le ID de l'utilisateur. Parfait. Cependant je veux qu'il soit marqué le nom et prenom. Mias je ne suis pas capable d'afficher les deux, j'ai droit a un seul. Comment puis-je afficher le nom et prenom (colonne différente dans la db).


    DOnc : la solution que j'utilisais pour les pocket pc ne pas applicable pour la programmation Win standard


    Résolu pour la question de base

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Points : 109
    Points
    109
    Par défaut
    La réponse peut venir de MySQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT(Nom,' ',Prenom) AS NomPrenom FROM matable
    Y'a même un espace en prime

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci a toi

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

Discussions similaires

  1. [DEBUTANT - VBA] Problèmes de ComboBox
    Par _Maniak dans le forum Général VBA
    Réponses: 13
    Dernier message: 10/03/2006, 10h02
  2. Problèmes de connexion réseau à MySQL
    Par digital prophecy dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/05/2005, 21h35
  3. Problème d'insertion ( équivalence mysql )
    Par syl2095 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/12/2004, 17h35
  4. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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