将DataGridView组合框更改为默认值时,会抛出异常

时间:2011-06-29 18:57:09

标签: c# winforms datagridview combobox

我有一个winform应用程序,它有一个带有组合框的datagridview。 Combobox是数据绑定,显示模型类型。如果我在gridview上加载以前保存的数据并尝试选择组合框第一个成员NullValue(--Select--)它会抛出异常无法将列'ModelTypeID'设置为null。请改用DBNull。。完整的异常消息如下所示。

   at System.Data.DataRow.set_Item(DataColumn column, Object value)
   at System.Data.DataRowView.SetColumnValue(DataColumn column, Object value)
   at System.Data.DataColumnPropertyDescriptor.SetValue(Object component,
   Object value)
   at System.Windows.Forms.DataGridView.DataGridViewDataConnection.PushValue
   (Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex, Object value)

有人可以建议我解决这个问题吗?

感谢

1 个答案:

答案 0 :(得分:2)

您可以查看提及here

的解决方法

它涉及订阅DataTable绑定的列更改事件

void dt_ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
     if (e.Column == dt.Columns["myColumn"])
     {
         if (e.ProposedValue == null)
         {
              e.ProposedValue = DBNull.Value;
         }
     }
}