当datetime没有被用户填充时传递空值? [英] pass the null value when datetime is not filled by user?

查看:160
本文介绍了当datetime没有被用户填充时传递空值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

IFormatProvider provider1 = new System.Globalization.CultureInfo("en-CA", true);
       String reservedate = txtreservedate.Text.Trim().ToString();
       if (!string.IsNullOrEmpty(reservedate))
       {
           DateTime datereservered = DateTime.Parse(reservedate, provider1, System.Globalization.DateTimeStyles.NoCurrentDateDefault);
           objvehiclePL.reserveddate = datereservered;
       }
       else
       {
           objvehiclePL.reserveddate = Convert.ToDateTime(null);
       }





这里我在其他情况下得到例外情况..请帮帮我?



例外



SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。



here i get exception at else condition .. please help me?

exception

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

推荐答案



您无法将空值转换为日期时间格式。



这对您有帮助。

如何将空字符串转换为日期时间 [ ^ ]


使用TryParse方法,请参阅以下示例:

Use TryParse method, see the following example:
using System;

public class Program
{
    public static void Main()
    {
        string dateString = null;
        //string dateString = "";
        //string dateString = "2014-4-7";

        DateTime dt;

        Console.WriteLine(DateTime.TryParse(dateString, out dt));

    }
}



如果允许用户输入无效日期的日期,则应始终使用TryParse,包括null和空字符串。

我的建议是使用一个日期选择器或日历控件,它总会返回一个有效的日期并为你节省所有麻烦。


You should always use TryParse if you allow users to enter date for invalid date, including null and empty string.
My suggestion is use a datepicker or calender control which will always returns a valid date and save you all this hassle.


只需传递null值,如图所示。 br $>


objvehiclePL.reserveddate = System.DBNull;
Just pass null value as shown.

objvehiclePL.reserveddate = System.DBNull;


这篇关于当datetime没有被用户填充时传递空值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆