if(rdr.IsDBNull(OriginalTime))
                {
                    model.OriginalTime = null;
                }
                else
                {
                    model.OriginalTime = rdr.GetDateTime(OriginalTime);
                }通过
model.OriginalTime=rdr.IsDBNull(OriginalTime)?null:rdr.GetDateTime(OriginalTime);
报错:错误 1 无法确定条件表达式的类型,因为“<null>”和“System.DateTime”之间没有隐式转换 D:\OA\YingKe.SQLServerDAL\AdministrativeCase.cs 505 63 YingKe.SQLServerDAL
三元运算符为什么不能实现null赋值?(model.OriginalTime为可空的)。查msdn,上面没说这种情况啊。疑惑中,求助坛子里的朋友们帮忙。

解决方案 »

  1.   

    OriginalTime定义为可空类型
    DateTime? OriginalTime;
      

  2.   

    DateTime 数据类型没有null 值。不能跟null比较。
      

  3.   

    试试
    model.OriginalTime = "";
    或者
    model.OriginalTime = dbnull.value;
      

  4.   

    定义可空类型
    Datetime ?OriginalTime;
      

  5.   

    model.OriginalTime=string.isnullorempty(rdr.IsDBNull(OriginalTime).tostring())?:rdr.GetDateTime(OriginalTime);试看看
      

  6.   


    if(rdr.IsDBNull(OriginalTime))
                    {
                        model.OriginalTime = null;
                    }
                    else
                    {
                        model.OriginalTime = rdr.GetDateTime(OriginalTime);
                    }
    编译通过...
      

  7.   

    OriginalTime已经为可空类型了。否则第一句话是无法编译通过的。求助其他可能。
      

  8.   

    model.OriginalTime = rdr.IsDBNull(OriginalTime) ? null : (DateTime?)rdr.GetDateTime(OriginalTime);