【发布时间】:2011-10-11 13:46:57
【问题描述】:
我在 Windows 窗体中使用 DataGridView 以允许用户添加 n 行,其中包含用户输入的值。 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 中选择任何值并单击保存按钮时,我都会在对应于DataGridViewComboBox 值的表中找到null 值。
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默认值的数据库中得到空值,尽管使用DataSourceNullValue属性?
【问题讨论】:
标签: c# .net winforms datagridview combobox