当前位置:编程学习 > C#/ASP.NET >>

怎么判断日期类型是否为空啊?

如何判断从数据库中查出来的日期格式的值是否为空啊?
if(times==null)
{
  ...
}
这样写貌似不行啊,求解答! --------------------编程问答-------------------- times 是什么类型 ?没看懂 --------------------编程问答-------------------- 从数据库中查出该字段用object类型接
再判断object==null --------------------编程问答--------------------
if(times==DBNull.Value)
{
  ...
}
试试看

--------------------编程问答-------------------- if(times==null||times=="")
{
   试下
} --------------------编程问答-------------------- DateTime是 值类型,没有空值,可以设置为可空类型。如下
DateTime? dt = null; --------------------编程问答-------------------- 可以说详细点吗?
最好是上代码
谢谢 --------------------编程问答-------------------- times<DateTime.MinValue --------------------编程问答-------------------- times==null||times=="" --------------------编程问答-------------------- times=="" --------------------编程问答-------------------- 或者:
赋值时,判断,若是空值则赋给DBNull.Value。
取值时,判断,若取到DBNull.Value则显示null
这样就能用
if(times==null)
{
  ...
}
了 --------------------编程问答-------------------- 如果你的数据库中默认插入DateTime.MinValue话就用times==DateTime.MinValue判断 --------------------编程问答--------------------
引用 3 楼 paul_c 的回复:
if(times==DBNull.Value)
{
  ...
}
试试看

正解。 --------------------编程问答-------------------- DateTime是值类型,不可能为null

DateTime? time = reader.GetValue(16) == DBNull.Value ? null : new DateTime?(reader.GetDateTime(16)); --------------------编程问答-------------------- p.BuyTime = dr["Time"] == DBNull.Value ? DateTime.Now :Convert.ToDateTime(sdr["BuyTime"]);或?可空类型null
--------------------编程问答-------------------- p.BuyTime = dr["Time"] == DBNull.Value ? DateTime.Now :Convert.ToDateTime(sdr["Time"]);或?可空类型null
--------------------编程问答-------------------- --------------------编程问答-------------------- 3楼的就可以了,此时times会被装箱为object与DBNull.Value比较

或者麻烦点
DateTime time;
if(DateTime.TryParse(times, out time))
//合法
else
//非法 --------------------编程问答-------------------- if(Convert.IsDBNull(times))
{
 //为空
} --------------------编程问答-------------------- times.GetType()==typeof(DBNull) --------------------编程问答-------------------- 如果你取出来的是string 类型就随便判断 times!="" ||  !string.IsNullOrEmpty(times) 
如果你取出来的是datetime类型的并且可为空的话  类似于声音的时候这样  private datetime? times
则你可以判断  times!=null || times.Value
如果你取出来的是object 类型的则判断 times!=null 就可以 --------------------编程问答-------------------- 如果是数据库本身 time这个值没有
建议可以试试  time.hasValue  这个办法 --------------------编程问答-------------------- if(times==null||times=="")
{
 
} --------------------编程问答--------------------

if(times!=null)
{
}
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 日期是struct,不可能为空
DateTime?这样才可以 --------------------编程问答-------------------- 在你比较之前,你这么去判断 if (Object == DBNull.Value) 而不是直接用 if (Object == null) --------------------编程问答--------------------

那么多高手都给你说了,我就顶下! --------------------编程问答-------------------- 使用可空类型...... --------------------编程问答-------------------- DBNull.value是查询数据库中的数据也能判断日期是否为空吗 这个我不太懂 求高手指点一下 --------------------编程问答--------------------
引用 13 楼 karascanvas 的回复:
DateTime是值类型,不可能为null

DateTime? time = reader.GetValue(16) == DBNull.Value ? null : new DateTime?(reader.GetDateTime(16));

DateTime? 刚刚才了解这种写法,LZ可以看看
http://www.2cto.com/kf/201012/79892.html
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,