关于c#:如何将datetime变量设置为null

How to set datetime variable to null

本问题已经有最佳答案,请猛点这里访问。

我有两个文本框和应用计时器。这里,我将文本框保留为空,即不提供任何日期,并将其作为fromDate和toDate参数发送给db。在msql storedprocedure中,如果fromdate和todate为空,则执行一个操作。为了执行该任务,我已使用了2个变量

1
2
DateTime fromdate;
DateTime todate;

并在codebehind中声明为日期时间。

1
2
fromdate = Convert.ToDateTime(txtfromdate.Text);
todate = Convert.ToDateTime(txttodate.Text);

当我发送到数据库时

1
2
fromdate = Convert.ToDateTime(txtfromdate.Text);
todate = Convert.ToDateTime(txttodate.Text);

它正在获取error.formate异常。是否可以将空值应用于日期时间变量?


是的,使用Nullable

1
DateTime? fromDate = null;

要回答您评论中的问题,您可以通过创建扩展方法返回Nullable

1
2
3
4
5
6
7
8
public static class DateTimeExtensions
{
    public static DateTime? ToNullableDateTime(this string val)
    {
        DateTime temp;
        return DateTime.TryParse(val, out temp) ? (DateTime?) temp : null
    }
}

并使用它:

1
DateTime? fromDate = txtfromdate.Text.ToNullableDateTime();


你可以使用

1
DateTime? Fromdate=null

"日期时间"?类型允许将其用作空值,但它是值类型结构。