日期:2014-05-17  浏览次数:20692 次

datetime类型
这是从数据库中读取datetime类型,用三元运算符该如何表示?我是这样写的,可是却报错了,求教!
member.DateBeg = sdr["DateBeg"] == null ?00-00-00 00:00:00 : Convert.ToDateTime(sdr["DateBeg"]);
datetime

------解决方案--------------------
member.DateBeg = sdr["DateBeg"] ==   DBNull.Value ?DateTime.MinValue : Convert.ToDateTime(sdr["DateBeg"].ToString().Trim());
------解决方案--------------------
member.DateBeg = sdr["DateBeg"] == null ?00-00-00 00:00:00 : Convert.ToDateTime(sdr["DateBeg"]);
↓↓
member.DateBeg = Convert.ToDateTime( sdr["DateBeg"] is DBNull ? "1999-01-01 00:00:00" : sdr["DateBeg"]);

①数据库中是 DBNull

② 最小日期 不能是 00-00-00 00:00:00

------解决方案--------------------
改成如下 也可以:
 member.DateBeg = sdr["DateBeg"] is DBNull ? DateTime.MinValue : Convert.ToDateTime(sdr["DateBeg"]);
------解决方案--------------------
member.DateBeg = sdr["DateBeg"] == DBNull.Value ?"1753-1-1 00:00:00": Convert.ToDateTime(sdr["DateBeg"]); 这种赋值方法不太好,最好的结果是先判断值是不是为空,为空就不赋值.

if(sdr["DateBeg"] != DBNull.Value)
{
member.DateBeg =Convert.ToDateTime(sdr["DateBeg"]); 
}