C# C DataGridView组合框以编程方式添加数据

C# C DataGridView组合框以编程方式添加数据,c#,items,datagridcomboboxcolumn,C#,Items,Datagridcomboboxcolumn,我有一个带有DataGridView的应用程序。其中一列为Combobox类型。我想以编程方式添加此组合框的项。以下是我使用的代码: this.dsStatussen = this.statussenMan.getAllStatussen(); DataGridViewComboBoxColumn cd = (DataGridViewComboBoxColumn)this.dgvEenheden.Columns[3]; cd.DataSource = dsStat

我有一个带有DataGridView的应用程序。其中一列为Combobox类型。我想以编程方式添加此组合框的项。以下是我使用的代码:

this.dsStatussen = this.statussenMan.getAllStatussen();
        DataGridViewComboBoxColumn cd = (DataGridViewComboBoxColumn)this.dgvEenheden.Columns[3];
        cd.DataSource = dsStatussen;
        cd.DisplayMember = "statussen";
        cd.DataPropertyName = "sid";
        cd.ValueMember = "status";
然后,当我尝试添加一行时,我得到以下错误:没有名称为status的字段。我把这个错误翻译成英语,因为我有一个荷兰语错误。 以下是我用于添加行的代码:

Eenheden eenhedenMan = new Eenheden(objEvenement.eid);
        DataSet EenhedenData = eenhedenMan.getAllEenheden();

        foreach (DataRow dr in EenhedenData.Tables[0].Rows)
        {
            dgvEenheden.Rows.Add(
                                    dr[0].ToString(), 
                                    dr[1].ToString(), 
                                    dr[2].ToString(), 
                                    Convert.ToInt32(dr[6]), 
                                    dr[3].ToString(), 
                                    dr[4].ToString(), 
                                    dr[5].ToString()
                                );
        }

有人能帮我找出我做错了什么吗?我找不到它。这是我第一次将DataGridView与组合框一起使用。

根据我的经验,如果您通过绑定搜索将其绑定,然后设置

bindingScource.dataScource.Rows.Add( 
                                    dr[0].ToString(),  
                                    dr[1].ToString(),  
                                    dr[2].ToString(),  
                                    Convert.ToInt32(dr[6]),  
                                    dr[3].ToString(),  
                                    dr[4].ToString(),  
                                    dr[5].ToString() 
                                ); 

选择正确的行?您的意思是从下拉列表中选择以查看数据网格中的行

 int index = dropdown.SelectedIndex();

 for(int count = 0; count < dgvEenheden.Rows.Count; count ++)
{
   if (dgvEenheden.Rows[count].Cells["<enter col name here>"].Value.ToString().equals(dropdown.Items[index].Text))
{
    dgvEenheden.Rows[count].Selected = true; //to select the Row
    dgvEenheden.Rows[count].Cells[<Cell Number>].Selected = true; //to select the specific Cell

}
}

您的实际数据源是什么样子的?Odes它有两列statussen和status??我的数据源是一个带有一个表的数据集。该表实际上有两列:sid和statusU意味着我应该直接将数据集EEnhedEndData中的数据绑定到DataGridView?如下所示:dgvEenheden.DataSource=eenhedenda.Tables[0];当我这样做时,我得到了相同的错误:没有名为status的字段。好的,我让它工作到statussen正在绑定的部分。所以在组合框中,我看到了我想要的项目。现在我还有一个问题。在我要添加的数据行中,第6列dr[6]有一个整数值,指示应该选择的状态ID。添加行时,如何通过编程在组合框中选择正确的项?对不起,我的评论是双重的,但我不能编辑第一条。额外的一点信息:DataGridviewCombobox中的项目是文本,datarow dr[6]中的列是整数!尝试将.ToInt32dr[6]转换为.ToString