我希望通过前端将空值插入到数据类型为Int的列中。
我使用了以下代码:
POP.JobOrderID = Convert.ToInt32(DBNull.Value);
但是我不能插入空值,会抛出错误,例如“无法从DBNull转换为其他类型的对象”:
如何插入NULL值?
kleinohad是正确的。此外,你应该分配null
而不是DBNull.Value
使用Nullable<Int32>
或者别名:int?
。
POP.JobOrderID = 5;
// or
POP.JobOrderID = null;
在ADO.NET中的使用:
command.Parameters.AddWithValue("@JobOrderId", POP.JobOrderID ?? DBNull.Value);
这相当于:
POP.JobOrderID.HasValue ? POP.JobOrderID.Value : DBNull.Value;
This
POP.JobOrderID = new Nullable<Int32>();
JobOrderID
是可空类型(int?
),那么这也应该可以工作。像这样:
POP.JobOrderID = null; // JobOrderID should be of type int? which is a nullable-int