如何将Nullable DateTime变量的null值转换为DbNull.Value

时间:2011-12-29 14:32:36

标签: c# sql-server datetime nullable dbcommand

我有一个可以为空的DateTime变量。我想把它写到SQL DB。当我尝试插入时:

如果变量有值,则没有问题。

但如果它没有值,则插入会因错误而中断。

我想问:我们如何通过DbCommand参数将可空的DateTime插入Sql?

(P.S。:Sql列也可以为空。)

DateTime? myDate = null;
DbCommand dbCommand = new DbCommand();
dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate);

2 个答案:

答案 0 :(得分:12)

试试null coalescing operator

dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, (object) myDate ?? DbNull.Value);

答案 1 :(得分:0)

试试这个

if(myDate.HasValue)
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate.Value);
else
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, DbNull.Value);