我有两个文本框和应用的时间戳。在这里,我将文本框保留为空,即不给出任何日期并作为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应用于日期时间变量?
答案 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。