获取组合框值,并使用它

时间:2019-05-21 08:45:08

标签: c# listview combobox

伙计们,我需要一些帮助!我在IHM上有几个组合框,其数据来自PhpMyAdmin中的每个不同表。我希望当我按下search按钮时,程序会考虑用户预先输入的组合框的值,以便在DATABASE中检索它们并在我的“列表”视图中显示它们。 我决定创建一个包含2行的表格。第一个具有组合框的名称,第二个具有组合框的名称。而且我不知道这是最好的解决方案。

  

这是表格:

Form

  

这是我现有的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace PROJET_FINDER
{
    public partial class Recherche : DevExpress.XtraEditors.XtraForm
    {
        public Recherche()
        {
            InitializeComponent();
        }

        MySqlConnection connection = new MySqlConnection("Datasource = localhost;port=3306;username=root;password=");

        private void Recherche_Load(object sender, EventArgs e)//Début des appels des ComboBox
        {

            try
            {
                string selectQuery = "SELECT * FROM cdh.etat";                                                     //Début Try/Catch pour le ComboBox le Code d'Etat
                connection.Open();                                                                                      //Connexion à la base de donnée ouverte
                CodeEtatFS_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                                    //ReadOnly sur la comboBox
                MySqlCommand command = new MySqlCommand(selectQuery, connection);                                       //Création de l'objet de la commande SQL
                MySqlDataReader reader = command.ExecuteReader();                                                       //Déclaration de la nouvelle instance
                while (reader.Read())
                {
                    CodeEtatFS_ComboBox_Home.Items.Add(reader.GetString("Lib_Code_Etat"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox du numéro FS 
            {
                connection.Open();
                NuméroFS_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                                      //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.fiche";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    NuméroFS_ComboBox_Home.Items.Add(reader.GetString("FS"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox des catégorie Radio
            {
                connection.Open();
                CatégorieRadiologique_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                        //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.ctg_rad";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    CatégorieRadiologique_ComboBox_Home.Items.Add(reader.GetString("Radiologique"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox des Centres
            {
                connection.Open();
                Centre_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                                        //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.site_centre";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Centre_ComboBox_Home.Items.Add(reader.GetString("Centre"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox des producteurs du déchet
            {
                connection.Open();
                Producteur_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                                    //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.prod";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Producteur_ComboBox_Home.Items.Add(reader.GetString("Producteur"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox du conditionnement du déchet
            {
                connection.Open();
                Conditionnement_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                               //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.statut_condition";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Conditionnement_ComboBox_Home.Items.Add(reader.GetString("Conditionnement"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
            try                                                                                                         //Début Try/Catch pour le ComboBox de la station de destination du déchet
            {
                connection.Open();
                StationDestination_ComboBox_Home.DropDownStyle = ComboBoxStyle.DropDownList;                            //ReadOnly sur la comboBox
                string selectQuery = "SELECT * FROM cdh.station_destination";
                MySqlCommand command = new MySqlCommand(selectQuery, connection);
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    StationDestination_ComboBox_Home.Items.Add(reader.GetString("Station_Destination"));
                }
                connection.Close();
            }
            catch (MySqlException cn)
            {
                MessageBox.Show(cn.Message);
                connection.Close();
            }
        }//Fin des appels des ComboBox

        private void DataTimePicker_Home_1_ValueChanged(object sender, EventArgs e)                                     //Lorsque la valeur du DataTimePicker_Home_1 change alors le 3 et le 4 se désactive
        {
            DataTimePicker_Home_3.Enabled = false;
            DataTimePicker_Home_4.Enabled = false;
            if(DataTimePicker_Home_3.Enabled == false)
            {

            }
        }

        private void DataTimePicker_Home_2_ValueChanged(object sender, EventArgs e)                                     //Lorsque la valeur du DataTimePicker_Home_2 change alors le 3 et le 4 se désactive
        {
            DataTimePicker_Home_3.Enabled = false;
            DataTimePicker_Home_4.Enabled = false;
        }

        private void DataTimePicker_Home_3_ValueChanged(object sender, EventArgs e)                                     //Lorsque la valeur du DataTimePicker_Home_3 change alors le 1 et le 2 se désactive
        {
            DataTimePicker_Home_1.Enabled = false;
            DataTimePicker_Home_2.Enabled = false;
        }

        private void DataTimePicker_Home_4_ValueChanged(object sender, EventArgs e)                                     //Lorsque la valeur du DataTimePicker_Home_4 change alors le 1 et le 2 se désactive
        {
            DataTimePicker_Home_1.Enabled = false;
            DataTimePicker_Home_2.Enabled = false;
        }  

        private void Data_Reset_Button_Click(object sender, EventArgs e)                                                //Bouton de réinitiallisation des DataTimePicker
        {
            DataTimePicker_Home_1.Enabled = true;
            DataTimePicker_Home_2.Enabled = true;
            DataTimePicker_Home_3.Enabled = true;
            DataTimePicker_Home_4.Enabled = true;
        }

        private void Chercher_Button_Click(object sender, EventArgs e)                                                  //Déclaration du bouton RECHERCHER
        {
            Object selectedItem_Etat = CodeEtatFS_ComboBox_Home.SelectedItem;
            Object selectedItem_Centre = Centre_ComboBox_Home.SelectedItem;
            Object selectedItem_CatRadg = CatégorieRadiologique_ComboBox_Home.SelectedItem;
            Object selectedItem_FS = NuméroFS_ComboBox_Home.SelectedItem;
            Object selectedItem_StationdeDestination = StationDestination_ComboBox_Home.SelectedItem;
            Object selectedItem_Producteur = Producteur_ComboBox_Home.SelectedItem;
            Object selectedItem_Conditionnement = Conditionnement_ComboBox_Home.SelectedItem;

            object[,] Tab_ComboBox =
           {
                {selectedItem_Etat, CodeEtatFS_ComboBox_Home},

                {selectedItem_Centre, Centre_ComboBox_Home},

                {selectedItem_FS, NuméroFS_ComboBox_Home},

                {selectedItem_CatRadg, CatégorieRadiologique_ComboBox_Home},

                {selectedItem_StationdeDestination, StationDestination_ComboBox_Home},

                {selectedItem_Producteur, Producteur_ComboBox_Home},

                {selectedItem_Conditionnement, Conditionnement_ComboBox_Home}
            };



            int i = 0;

            bool statement = false;


            while (i == 7)
            {
                connection.Open();
                if (selectedItem_Etat != null)
                {
                    LW_FS_Home.Items.Clear();
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM etat WHERE Lib_Code_Etat=@Lib_Code_Etat", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", CodeEtatFS_ComboBox_Home.Text);//Récupération de l'age souhaité par l'utilisateur
                    statement = true;
                    i++;
                }
                else if (selectedItem_Centre != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.site_centre WHERE Centre=@Centre", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", Centre_ComboBox_Home.Text);
                    statement = true;
                    i++;
                }
                else if (selectedItem_FS != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.fiche WHERE FS=@NuméroFS_ComboBox_Home", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", NuméroFS_ComboBox_Home.Text);
                    statement = true;
                    i++;
                }
                else if (selectedItem_CatRadg != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.ctg_rad WHERE Radiologique=@Radiologique", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", CatégorieRadiologique_ComboBox_Home.Text);
                    statement = true;
                    i++;
                }
                else if (selectedItem_StationdeDestination != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.station_destination WHERE Station_Destination=@Station_Destination", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", StationDestination_ComboBox_Home.Text);
                    statement = true;
                    i++;
                }
                else if (selectedItem_Producteur != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.prod WHERE Producteur=@Producteur", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", Producteur_ComboBox_Home.Text);
                    statement = true;
                    i++;
                }
                else if (selectedItem_Conditionnement != null)
                {
                    MySqlCommand cmd = new MySqlCommand("SELECT * FROM cdh.statut_condition WHERE Conditionnement=@Conditionnement", connection);
                    cmd.Parameters.AddWithValue("@Lib_Code_Etat", Conditionnement_ComboBox_Home.Text); 
                    statement = true;
                    i++;
                }
                else
                {
                    MessageBox.Show("AIE");
                }

                foreach (Object Tab_Combo in Tab_ComboBox)
                {
                    MySqlCommand cmd = new MySqlCommand();
                    if (statement == true)
                    {
                        using (MySqlDataReader Lire = cmd.ExecuteReader())
                        {
                            while (Lire.Read())  // Boucle While qui regarde toutes les infos que l'on souhaite voir avec la méthode "lire"
                            {
                                string TAB = Lire["Tab_Combo"].ToString();

                                LW_FS_Home.Items.Add(new ListViewItem(new[] { TAB }));
                            }
                        }
                    }
                }

            }
        }
}    

感谢您的帮助。

0 个答案:

没有答案