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

C# 如果在日期字段中传递空值,如何转换日期时间,c#,asp.net,type-conversion,nullable,C#,Asp.net,Type Conversion,Nullable,如何存储空值以及如何在数据库中插入空值? 我得到这个错误 字符串未被识别为有效的日期时间 您需要在数据库中指定允许特定列为null 如果您已经有一个数据库,则可以运行以下操作: ALTER COLUMN `YourColumn` datetime2() DEFAULT NULL 这将允许您在数据库中使用null 您还需要将代码中的datetime转换为可为null的类型。否则.NET会给出一个默认日期1/1/0001 12:00:00 AM(不是很有用) 有两种方法可以做到这一点。我个人推荐第

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

字符串未被识别为有效的日期时间


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

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

ALTER COLUMN `YourColumn` datetime2() DEFAULT NULL
这将允许您在数据库中使用null

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

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

您可以使用以下两种方法之一来执行此操作:?接线员:

 public DateTime? EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}
或通过可为空的泛型函数:

public Nullable<DateTime> EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}
公共可空估计时间
{
设置{estimatedTime=value;}
获取{return estimatedTime;}
}
不要忘记将estimatedTime字段也转换为可为null的类型(再次使用?运算符或可为null)


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

estimateTimeLabel.Text的价值是什么?您的
CurrentCulture
是什么?调试您的代码并告诉我们。
public Nullable<DateTime> EstimatedTime
{
    set { estimatedTime = value; }
    get { return estimatedTime; }
}