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 :
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 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(); } }
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(); } }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.
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; } }
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
Partager