Заполнение datagridviewcombobox в соответствии с базой данных MySQL - PullRequest
0 голосов
/ 03 ноября 2019


У меня есть datagridView, который имеет 2 столбца, которые будут заполнены базой данных.
В базе данных у меня есть это:
Столбец1: Имя Столбец2: Количество Столбец 3: Дата


a 1 2019
b 2 2018
c 3 2017
a 4 2015

Так что мне нужно показать в своем выпадающем списке имя a: (1 - 2019)(4 - 2015)
Вот что я сделал:

using (MySqlDataAdapter sda = new MySqlDataAdapter(@"SELECT DISTINCT Name ,CONCAT(Quantite ,'PCS -' ,Date) as Conc FROM articles", MyConnexion))
        {
            DataTable dt = new DataTable();
            sda.Fill(dt);
            DTG_Bordereau.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            DTG_Bordereau.Columns[0].DataPropertyName = "Name";

            DTG_Bordereau.Columns[3].Width = 300;

            DTG_Bordereau.DataSource = dt;

            for (int i = 0; i < dt.Rows.Count; i++)
                  {
                var val = dt.Rows[i]["Conc"].ToString();

                //check if it already exists
                if (!QuantiteDisponible.Items.Contains(val))
                {
                    QuantiteDisponible.Items.Add(val);
                }

            }

1 Ответ

0 голосов
/ 03 ноября 2019
using (MySqlDataAdapter sda = new MySqlDataAdapter(@"SELECT DISTINCT Name FROM articles", MyConnexion))
        {
            DataTable dt = new DataTable();
            sda.Fill(dt);
            DTG_Bordereau.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            DTG_Bordereau.Columns[0].DataPropertyName = "Name";



            DTG_Bordereau.Columns[3].Width = 300;
            DTG_Bordereau.DataSource = dt;





                try
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {


                        QuantiteDisponible.Items.Clear();

                    MySqlDataAdapter sda2 = new MySqlDataAdapter("SELECT DISTINCT CONCAT(Quantite ,'PCS -' ,Date) as Conc FROM articles where Name='" + dt.Rows[i][0].ToString() + "'", MyConnexion);
                    DataTable dt2 = new DataTable();

                    sda2.Fill(dt2);
                    QuantiteDisponible.DataSource = dt2;

                    QuantiteDisponible.DisplayMember = "Conc";
                    QuantiteDisponible.ValueMember = "Conc";

                }


            }

                catch
                { }



        }

Итак, с этим кодом мой первый комбинированный список корректен, но другие комбинированные списки принимают то же значение, что и первый комбинированный список ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...