在程序中声明了一个Int32?类型的变量.该变量从数据库中取值.数据库中的值可能为null,这时如何赋值给这个变量呢??代码如下:
   Int32? xx;
  ....
  xx=rdr.IsDBNull(0)? null: rdr.GetInt32(0);
  .... 在编译时,报错如下:
"错误 1 无法确定条件表达式的类型,因为“<null>”和“Int32”之间没有隐式转换"
这样的错误如何排除呢.

解决方案 »

  1.   

    int aaa=0;
    aaa=1;
    这样的,int型不能赋null值.
      

  2.   

    xx=rdr.IsDBNull(0)? 0: rdr.GetInt32(0); 用0不能替代NULL吗?总之你用一个你用不到的数来代替不就可以了!然后再根据情况做处理!
      

  3.   

    是三目运算符(?:)的问题。麻烦一点:
    if( rdr.IsDBNull(o) )
    {
      xx = null;
    }
    else
    {
      xx = rdr.GetInt32(o);
    }
      

  4.   

    先判断是否为null ,如果不是,再赋值!