Red*_*wan 4 c# asp.net null datetime
我有使用C#的asp.net表单,我正在使用Linq将用户信息像往常一样插入数据库.好.我也从用户那里获取出生日期,但是如果用户从ui跳过填写日期文本框,那么我得到像'01/01/0001'这样的日期,这肯定是数据库安全性不允许的存储它.
所以我需要在我的代码中的某处检查它是null还是以这种(上面给出的)格式.如果它为null或格式为'01/01/0001'那么我究竟要做什么?我没有日期的任何默认值.
那么,如果date为null(但不是强制性的),那么处理的标准方法是什么.请指导我.很多次,我发现自己处于陷阱,同时处理各种类型的null.
编辑 看看我做了什么似乎在这里工作.但我不这么认为这是标准方式:
DateTime? otxtDOB = new DateTime();
if (!string.IsNullOrEmpty(DOB))
{
if (Convert.ToDateTime(DOB) != DateTime.MinValue)
{
otxtDateOfPurchese = Convert.ToDateTime(Convert.ToDateTime(DOB).ToString("dd-MMM-yyyy"));
}
else
{
otxtDOB = null;
}
}
Run Code Online (Sandbox Code Playgroud)
请确认我这是正确的方法吗?
Mas*_*sif 11
如果用户没有设置日期属性Nullable(即" DateTime?"),则应该允许它实际为空.(并且假设您的数据库列将允许空值,它可以在数据库中存储为null)
否则它将默认为DateTime.MinValue你在这里看到的.DateTime.MinValue在添加到数据库时,您必须进行明确的测试.
Nav*_*utt -2
您可以在传递到数据库时使用它。
object datetimeObj = null;
if (datetimefromUI == DateTime.MinValue) // This is put in the DateTime object by default
datetimeObj = DBNull.Value;
else
datetimeObj = datetimefromUI;
// Post datetimeObj to parameter in database...
Run Code Online (Sandbox Code Playgroud)