在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#
见注释在第一个答案的结束。设置一个空值只会显示一个默认值,但不会实际设置它。