如果在日期字段

时间:2015-06-13 12:05:37

标签: c# asp.net type-conversion nullable

如何存储空值以及如何在数据库中插入空值? 我得到这个错误。

  

字符串未被识别为有效的DateTime。

if (taskObj.EstimatedTime == null)
{
    taskObj.EstimatedTime = Convert.ToDateTime(estimateTimeLabel.Text);
}

public DateTime EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}

1 个答案:

答案 0 :(得分:0)

您需要在数据库中指定可以为特定列允许null。

如果您已有数据库,则可以执行以下操作:

 public DateTime? EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}

这将允许您在数据库中使用null。

您还需要将代码中的日期时间转换为Nullable类型。否则.NET会出现一个默认日期1/1/0001 12:00:00 AM(不是很有用)。

有两种方法可以做到这一点。我个人推荐第一个,但它完全取决于编码风格。

你可以使用?运营商:

public Nullable<DateTime> EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}

或者通过Nullable泛型函数:

table, tr, th, td {
  box-sizing: border-box;  
}

table.content {
  border-collapse: collapse;
  width: 100%;
}

th {
  font-weight: bold;
  background-color: black;
}

td.course_title {
  background-color: white;
  width: 30%;
}

td.launch_link {
  width: 30%;
}

// assign class to your table and tds

不要忘记将您的estimatedTime字段转换为可空类型(再次使用?运算符或Nullable。

我希望有所帮助。如果没有,请给我留言,我会尽力帮助你。