【问题标题】:What should be saved (in SQL Server database) if it is no data (is null)?如果没有数据(为空),应该保存什么(在 SQL Server 数据库中)?
【发布时间】:2011-03-16 15:07:59
【问题描述】:

我有数据类型为 DateTime 的 SQL Server 数据库条目 LastCheck

首先保存它没有价值,所以它是NULLLastCheck 配置为允许空值。

我应该在我的声明中插入什么?如何在代码中初始化LastCheck?我应该将DateTime 转换为null 吗?我不能只做LastCheck = null,因为它来自DateTime 值。

Job job = new Job();
job.LastCheck = null;

cmd.CommandText = "INSERT INTO Jobs (LastCheck)"
                  + " VALUES (@LastCheck)";

cmd.Parameters.Add(new SqlParameter("@LastCheck", job.LastCheck));

【问题讨论】:

    标签: c# sql-server asp.net-mvc


    【解决方案1】:

    你应该使用DbNull.Value插入一个空值:

    cmd.Parameters
       .Add(new SqlParameter("@LastCheck", job.LastCheck ?? DbNull.Value));
    

    【讨论】:

    • 但我的 lastcheck 来自 DateTime 类型。我需要转换它吗?
    • @Ragims:如果SQL Server中的列允许null,可以传入DBNull.Value
    【解决方案2】:

    DBNull.Value 是您的正确答案 - 我还建议您指定它的类型!

    cmd.Parameters.Add(new SqlParameter("@LastCheck", SqlDbType.DateTime));
    cmd.Parameters["@LastCheck"].Value = DBNull.Value;
    

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 2021-05-14
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多