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