如何将datetime变量设置为null

时间:2014-07-25 09:42:25

标签: c# mysql asp.net .net datetime

我有两个文本框和应用的时间戳。在这里,我将文本框保留为空,即不给出任何日期并作为fromdate和todate参数发送到db。 在msql storedprocedure中,如果Fromdate和todate为空,则执行一个操作。为了执行该任务我已经采取了2个变量

DateTime fromdate;
DateTime todate;

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

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

当我发送到db

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

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

2 个答案:

答案 0 :(得分:5)

是的,请使用Nullable<DateTime>

DateTime? fromDate = null;

要回答评论中的问题,您可以通过创建Extension Method来回复Nullable<DateTime>

public static class DateTimeExtensions
{
    public static DateTime? ToNullableDateTime(this string val)
    {
        DateTime temp;
        return DateTime.TryParse(val, out temp) ? (DateTime?) temp : null
    }
}

并使用它:

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

答案 1 :(得分:1)

您可以使用

DateTime? Fromdate=null

&#34;日期时间?&#34; type允许您将其用作null,但它是一个值类型struct。