【发布时间】:2011-09-22 15:09:16
【问题描述】:
通过前端,我想将 NULL 值插入 DataType 为 Int 的列。
我是这样用的:
POP.JobOrderID = Convert.ToInt32(DBNull.Value);
但是我不能插入 Null 值,它会抛出诸如“Object cannot be cast from DBNull to other types”之类的错误:
如何插入 NULL 值?
【问题讨论】:
通过前端,我想将 NULL 值插入 DataType 为 Int 的列。
我是这样用的:
POP.JobOrderID = Convert.ToInt32(DBNull.Value);
但是我不能插入 Null 值,它会抛出诸如“Object cannot be cast from DBNull to other types”之类的错误:
如何插入 NULL 值?
【问题讨论】:
如果你想这样做 POP.JobOrderID 应该输入 int? (nullable int) 而不是 int
【讨论】:
kleinohad 是正确的。此外,您应该分配null,而不是DBNull.Value
【讨论】:
像这样:
POP.JobOrderID = null; // JobOrderID should be of type int? which is a nullable-int
希望对您有所帮助。
【讨论】:
这个
POP.JobOrderID = new Nullable<Int32>();
如果 JobOrderID 是可空类型 (int?),也应该可以工作。
干杯
【讨论】:
使用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;
【讨论】: