Mar*_*all 2 c# datetime sql-server-2008
所以,首先.代码:我上课了:
public class Myobject
{
public string Code { get; set; }
public DateTime? StartDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是非常简单的来源的一部分:
MyObject mo = new MyObject();
mo.Code= "sth";
// NO action on StartDate property!
if (mo.StartDate.HasValue)
{
sc.Parameters.Add(new SqlParameter("@inStartDate", mo.StartDate.Value));
}
else
{
sc.Parameters.Add(new SqlParameter("@inStartDate", DBNull.Value));
}
Run Code Online (Sandbox Code Playgroud)
简单'如果' - Sql Server 2008,抛出错误 - 当获取null Datetime(它必须是DBNull.Value)所以我想先检查它,然后传递正确的值或DBNull.
我的问题是 - 这'如果'总是重演真实!为什么!?
还试过:
if (mo.StartDate.Value == null)
Run Code Online (Sandbox Code Playgroud)
但它总是返回false.怎么不是空的?它甚至没有创建..
那么.. 如何检查是否未分配DateTime对象?
小智 5
试试这个:
if (mo.StartDate.GetValueOrDefault() != DateTime.MinValue)
{
// True - mo.StartDate has value
}
else
{
// False - mo.StartDate doesn't have value
}
Run Code Online (Sandbox Code Playgroud)