首页 > 解决方案 > 根据数据库mysql在datagridviewcombobox上填充

问题描述


我有一个 datagridView,它有 2 列将由数据库填充。
在数据库中我有这个:
Column1:名称 Column2:数量 Column 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);
                }

            }

标签: c#mysqldatagridview

解决方案


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
                { }



        }

因此,使用此代码,我的第一个组合框是正确的,但其他组合框采用与第一个组合框相同的值....


推荐阅读