如何设置datetime变量为空

本文关键字:datetime 变量 设置 何设置 | 更新日期: 2023-09-27 18:14:41

我有2个文本框和应用时间选择器。在这里,我离开文本框为空,即不给出任何日期和发送到数据库作为fromdate和todate参数。在sql storedprocedure中,如果Fromdate和todate为空,则执行一个操作。为了完成这个任务,我取了两个变量

DateTime fromdate;
DateTime todate;

并在codebehind中声明为Datetime。

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

当我发送到db

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

出现错误。甲酸例外。是否可以将null应用于日期时间变量?

如何设置datetime变量为空

是的,使用Nullable<DateTime>:

DateTime? fromDate = null;

要回答您评论中的问题,以下是您如何返回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();

可以使用

DateTime? Fromdate=null

"DateTime?"类型允许您将其用作null,但它是一个值类型结构体。