在DataGridView组合框中设置默认值

问题描述:

我在windows窗体中使用DataGridView以允许用户添加n个用户输入值的行数。其中一列DataGridView包含组合框,该组合框使用数据库显示其项目。在DataGridView组合框中设置默认值

我使用Load事件下面的代码与数据库连接DataGridViewComboBox

private void PurchaseMaster_Load(object sender, EventArgs e) 
{ 
    DataTable dt = itemBAL.GetTable(); 
    bindingSource1.DataSource = dt; 
    ItemName.DataSource = bindingSource1; 
    ItemName.DisplayMember = "Name"; 
    ItemName.ValueMember = "ItemId"; 
    ItemName.DataPropertyName = "ItemId"; 
    ItemName.AutoComplete = true; 
    ItemName.DefaultCellStyle.NullValue = dt.Rows[0][1].ToString(); 
    ItemName.DefaultCellStyle.DataSourceNullValue = dt.Rows[0][0].ToString(); 
} 

但每当我不DataGridViewComboBox选择任何值,然后点击保存按钮,我觉得在对应表null值值为DataGridViewComboBox

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    if (row.IsNewRow) 
     continue; 

    DataRow dtRow = dt.NewRow(); 
    for (int i = 0; i < dataGridView1.Columns.Count; i++) 
     dtRow[i] = row.Cells[i].Value == null ? DBNull.Value : row.Cell[i].Value; 
    dt.Rows.Add(dtRow); 
} 

谁能告诉我为什么我得到的数据库空值DataGridViewcombobox defult值,尽管使用DataSourceNullValue财产?

回答你的其他后应该会有所帮助: Combo box is not displaying default value in DataGridView in C#

见注释在第一个答案的结束。设置一个空值只会显示一个默认值,但不会实际设置它。