【发布时间】:2012-01-29 22:40:54
【问题描述】:
我有一个可为空的 DateTime 变量。我想将它写入 SQL DB。当我尝试插入时:
如果变量有值就没有问题。
但如果它没有值,插入会因错误而中断。
我想问:我们如何通过DbCommand参数将可以为空的DateTime插入到Sql中?
(附注:Sql 列也可以为空。)
DateTime? myDate = null;
DbCommand dbCommand = new DbCommand();
dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate);
【问题讨论】:
-
你得到什么错误?我相信您可以交替使用
null和DBNull.Value。 -
@Yuck - 我认为您不能互换使用这两者,或者至少,您不能与所有数据库提供商一起使用。在将空值插入数据库时,您应该使用 DBNull.Value。处理 null 与 DBNull.Value 时语义略有不同:null 指的是无效的对象引用,而 DBNull.Value 指的是数据库行中的未知值。看起来像头发分裂,但这是我能看到的最好的区别。
-
@mjd79 它适用于
SqlDbCommand,可能只是不适用于DbCommand。
标签: c# sql-server datetime nullable dbcommand