繁体   English   中英

如果在日期字段中传递空值,如何转换日期时间

[英]how to convert date time if passing null value in date field

如何存储空值以及如何在数据库中插入空值? 即时通讯收到此错误。

无法将字符串识别为有效的DateTime。

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

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

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

如果您已经有一个数据库,则可以运行以下内容:

ALTER COLUMN `YourColumn` datetime2() DEFAULT NULL

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

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

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

您可以使用?来做到这一点。 操作员:

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

或通过Nullable泛型函数:

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

别忘了也将您的EstimatedTime字段也转换为可为空的类型(再次使用?运算符或Nullable。

希望对您有所帮助。 如果没有,请给我评论,我会尽力为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM