程序中要求对数据库中取出的日期型字段和NULL比较,可是如果在DB中日期型是NULL时,取出来在程序中发现它是12:00:00AM或是1899 01 30 12:00:00AM,所以没法比较了..怎么办?关于DB中NULL日期型取出来后变化,我不知道是和数据库的设定有关,还是和我在程序中接受数据库字段是的类有关,数据库技术用的是IBatisNet ,orcle谢谢!!

解决方案 »

  1.   

    可是如果在DB中日期型是NULL时,取出来在程序中发现它是12:00:00AM或是1899 01 30 12:00:00AM,所以没法比较了
    ==
    如果在数据库中字段为null,在程序中对应的值应该是System.DBNull.Value
      

  2.   

    DateTime是值类型...对NULL默认会赋最小值...改用DateTime?...可空类型...
      

  3.   

    首先数据库中字段最好不要出现NULL,能不出现的就不出现,给默认值,优化数据库就会知道!
    不出现NULL,也就不会有你所说的问题!如果出现了 楼上的已经说了!
      

  4.   

    谢谢各位
    不过我没看明白.根据我提供的现像.也就是没办法用NULL比较了呗.对于2楼说的,因为对于从数据库取出数据到放到对应数中的字段上这个过程是封闭好的,所以我没有办法来改变类型了.....我现在是这样做的
    If Not (objTeateJyoho.Year = 1899 OrElse objTeateJyoho.Year = 1) Then   不过我觉的有点傻.呵呵.有没有高手指点下
      

  5.   

    既然是用IBatis.Net...还怎么个封闭啊...难道你不能改DAL?如果不能改DAL那就去改数据库...把相应字段改成not null加当前时间默认值...如果也不能改数据库...楼上所有的DBNull判断方法都不适用...你只能用“有点傻”的办法了...除非你抛弃IBatis.Net...ps:商业开发最好不用IBatis.Net...