C#-如何从combobox datagridview中的表中将值设置为默认值?

C#-如何从combobox datagridview中的表中将值设置为默认值?,c#,datagridview,combobox,C#,Datagridview,Combobox,若从数据库中的表中获取值,如何设置combobox的默认值。我正在考虑将该值与列[2]/destinationColumn进行比较,以查看表中应选择哪个值作为默认值。这是我到目前为止的错误代码。建议或示例代码将不胜感激。提前谢谢各位 string sqlLookupColumn = "SELECT LookUpColumnID, SOURCE_NAME FROM TB_LOOKUP_COLUMN ORDER BY SOURCE_NAME ASC";

若从数据库中的表中获取值,如何设置combobox的默认值。我正在考虑将该值与列[2]/destinationColumn进行比较,以查看表中应选择哪个值作为默认值。这是我到目前为止的错误代码。建议或示例代码将不胜感激。提前谢谢各位

                string sqlLookupColumn = "SELECT LookUpColumnID, SOURCE_NAME FROM TB_LOOKUP_COLUMN ORDER BY SOURCE_NAME ASC";
                DataSet dsColumn = databaseManager.GetData(sqlLookupColumn);
                DataGridViewComboBoxColumn dgvCboColumn = new DataGridViewComboBoxColumn();
                dgvCboColumn.Name = "DESTINATION_NAME";
                dataGridView1.Columns.Add(dgvCboColumn);

                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    DataGridViewComboBoxCell cboDestinationColumns = (DataGridViewComboBoxCell)(row.Cells[3]);
                    cboDestinationColumns.DataSource = dsColumn.Tables[0];
                    string destinationColumn = row.Cells[2].Value.ToString();
                    cboDestinationColumns.DisplayMember = "SOURCE_NAME"; 
                    cboDestinationColumns.ValueMember = "LookUpColumnID";
                    if (destinationColumn == cboDestinationColumns.DisplayMember)
                    {
                        cboDestinationColumns.Selected = true;
                    }
                }

我能看错的东西

1-GridView上的循环不起作用,请在
数据集上执行循环,而不是在GridView上执行循环

2-您正在将destinationColumn与cboDestinationColumns.DisplayMember which=“SOURCE\u NAME”进行比较,如果destinationColumn=“InvoiceNo”

3-使用for循环和
将添加到组合项。添加
方法,并执行if语句

要添加项目,请执行以下操作:

第一次添加这个类

public class ComboboxItem
{
    public string Text { get; set; }
    public object Value { get; set; }

    public override string ToString()
    {
        return Text;
    }
}
然后在数据集上循环

for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
    DataRow dr = ds.Tables[0].Rows[i];
    ComboboxItem tmp= new ComboboxItem();
    tmp.Text = dr["SOURCE_NAME"];
    tmp.Value = dr["LookUpColumnID"];

cb.Items.Add(tmp);
if(dr["InvoiceNo"].ToString() =="")//Your condition here to set selected
cb.SelectedIndex = i;
}

for(int i=0;ii)我只是尝试根据变量destinationColumn的值设置combobox列的默认值。如果destinationColumn=“InvoiceNo”,则combobox的默认值应为“InvoiceNo”。我希望这能澄清我的问题。谢谢你的建议。我正试着按照你说的做,但你能告诉我如何从数据集到组合框中增加价值吗?