数据表中有一int字段,对于某些记录,此字段可能没有(不需要)值
是用not null字段等于0好,还是用null好? 用0似乎和c#的int类型更加匹配一些?

解决方案 »

  1.   

    int 不能为null,最好找个无效值,如0或-1等不过无论如何都要业务层做转换的解释!
      

  2.   

    如果是sqlserver 2000的话用一个不可能出现的负数来表示null,性能好点。sqlserver 2005以上可以用null。null也能索引了。用了null就是读取的时候麻烦点,得先判断DBnull。
      

  3.   

    该字段设成了not null当然用0好啊!
      

  4.   

    数据字段可以为空的话,没有值 当然是null,0的意义就不同了。
      

  5.   

    没有本质的差别,只要规则统一就可以了,一般来说为空的话应该是null。
    如果某些字段的实际值可能为0,那就只能用null了。
      

  6.   

    个人感觉用0或负数比较好,不影响业务的前提下。
    null的话读取麻烦,C# int类型本身不能为null,最终还是要给一个初始值,或者用int?
      

  7.   

    属性设置可空类型
    没本质区别 DBnull.Value
      

  8.   

    数据库那可设为 可空类型
    在c#那 用 int? ***  c#的可空类型
      

  9.   

    至于吗???为什么 要用null 
      

  10.   

    最合适的类型应该是定义可取NULL的int 类型
    System.Nullable<int>
      

  11.   

    0 代表你知道它是 0,而null代表“不知道、不确定、不关心”,完全不一样的东西。首先关心实际的映射领域需求,至于说你能不能用.net来表达那是技术水平问题,而不应该太影响你做设计。
      

  12.   

    is null or is not null
    CS
    DBNULL.value
      

  13.   

    int类型用0     strng 类型用null
      

  14.   

    不好意思打错了
    int类型用  0
    string类型用  null
      

  15.   

    比如:有一张表是描述树形结构的,
    UpperId是主键Id的自关联外键,
    那么在约束上,UpperId不允许出现Id中不存在的值,
    有一条记录,名叫Root(根),那么它的UpperId是不存在的,
    那么UpperId=0将违反约束,所以此时UpperId应该是NULL.
      

  16.   

    再比如:
    有个字段名字叫报废日期,
    可是大部分情况下,设备没有报废,所以报废日期AllowNull并且DefaultValue Is NULL
      

  17.   

    其实,即便是字段中不允许NULL值的存在,
    在算法中,都不能忽视NULL的存在:无论是在应用程序(比如C#)还是DBMS(比如MSSqlServer)
      

  18.   

    int? i;
    i=null;这样写可以为空值 作用是为了映射数据库
      

  19.   

    我想问一下的是你这个字段有没有机会它的值就是0,要是的话怎么区分是0还是null。
      

  20.   

    可以弄可空整形的。如:int?
      

  21.   

      看你数据库设计的思想是什么,int类型存入0,代表已经有值了,而不是什么也没有,用null本人认为较好,只是在业务操作时稍加处理,麻烦一点
      

  22.   

    记得学数据库默认值的时候
    书上就这样说的:“有些字段为NULL的话,外部程序调用起来非常麻烦
    然而有了默认值有不一样了。。”
    我一般都是找一个项目中不可能出现的数字来代表NULL。。
    大多数下都是用0.