3

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

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

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

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

(PS:Sql 列也可以为空。)

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

2 回答 2

13

尝试空合并运算符

dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, (object) myDate ?? DbNull.Value);
于 2011-12-29T14:37:55.447 回答
0

试试这个

if(myDate.HasValue)
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate.Value);
else
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, DbNull.Value);
于 2011-12-29T14:43:18.843 回答