Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据数据库mysql填充datagridviewcombobox_C#_Mysql_Datagridview - Fatal编程技术网

C# 根据数据库mysql填充datagridviewcombobox

C# 根据数据库mysql填充datagridviewcombobox,c#,mysql,datagridview,C#,Mysql,Datagridview,我有一个datagridView,其中有2列将由数据库填充。 在数据库中,我有以下内容: 第1列:名称第2列:数量第3列:日期 using (MySqlDataAdapter sda = new MySqlDataAdapter(@"SELECT DISTINCT Name ,CONCAT(Quantite ,'PCS -' ,Date) as Conc FROM articles", MyConnexion)) { DataTable dt = new


我有一个datagridView,其中有2列将由数据库填充。
在数据库中,我有以下内容:
第1列:名称第2列:数量第3列:日期

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);
                }

            }

a 2019年1月1日
b 2 2018年
2017年第三季度
a 2015年4月4日

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);
                }

            }
所以我需要的是在我的组合框中显示姓名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);
                }

            }
使用(MySqlDataAdapter sda=new MySqlDataAdapter(@“选择不同的名称,CONCAT(数量,'PCS-',日期)作为文章的Conc”,myconnection))
{
DataTable dt=新的DataTable();
sda.填充(dt);
DTG_Bordereau.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
DTG_Bordereau.Columns[0].DataPropertyName=“Name”;
DTG_Bordereau.列[3]。宽度=300;
DTG_Bordereau.DataSource=dt;
对于(int i=0;i
使用(MySqlDataAdapter sda=new MySqlDataAdapter(@“从文章中选择不同的名称”,myconnection))
{
DataTable dt=新的DataTable();
sda.填充(dt);
DTG_Bordereau.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
DTG_Bordereau.Columns[0].DataPropertyName=“Name”;
DTG_Bordereau.列[3]。宽度=300;
DTG_Bordereau.DataSource=dt;
尝试
{
对于(int i=0;i

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

那么,会发生什么?问题是什么?有很多这样做的示例;您甚至可以绑定项。问题是,在组合框中,所有项都被填充,而不是完全不同的项。您所做的是双击datagridview,在新方法中,您获得名称,清除组合框并仅添加同一行中具有名称ahow的val?我尝试了很多次……您尝试了什么?if(dt.Rows[I][“name”].ToString()=“a”){在//之前检查它是否已经存在,当然在块之后是a}
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);
                }

            }