是int型的设置默认值不就好了。

解决方案 »

  1.   

    早晚都要转String的,早转晚转有什么区别么.
    Int型就是你在显示前需要后续计算的时候可能方便点
    但是能够显示的内容必然都是字符串啊.
      

  2.   

    有个东西叫可空类型..所以你可以用int?类型
      

  3.   

    试了,可以.
    我随便定义了个int? i=null,可以执行.
    学习了.
      

  4.   

    而且执行i.GetType()
    返回的也是int32
      

  5.   

    你先去取出数据库的表存在dataset中然后,然后ds.WriteXml("tablename.xml");你就去处理xml,这样当xml的节点时空的情况下你去段结点你的程序就不会报错,应该可以只是这种方法不是很可取,你当然可以在class里面定义的时候直接在字段属性里面处理,在里面判断        public string IsEnab
            {
                get { return isEnab; }
                set { isEnab = value;
                isEn = value == "0" ? true : false;
                }
            }数据库存的是1和0,但是界面上标示的是false,true
      

  6.   

    暂且不说你的xml方便与否,那我如果是datetime类型的呢
      

  7.   

    一般都是int对int,在初使化时做一下判断,数据是否为空,为空就给0
      

  8.   

    定义可空类型啊。
    int? a;
      

  9.   

    C# 中的可空值类型 null
    http://blog.csdn.net/seattle1215/article/details/6662896我也学习了一下,给你发个链接,一起学习哈。
      

  10.   

    暂且不说你的xml方便与否,那我如果是datetime类型的呢你数据是datetime输出的xml会以string输出,你数据库里面字段createtime内容是是2014-06-19 00:00:00 xml里面会"<createtime>2014-06-19 00:00:00</createtime>"如果在程序里面则直接判断这个属性是不是为空或者是否是时间类型
      

  11.   


     class Program
        {
            static void Main(string[] args)
            {
                //模拟数据库
                DataTable dt=new DataTable ();
                DataRow dr;
                dr["age"]=18;
                dr["BrithDay"]=DateTime.Now;
                dt.Rows.Add(dr);            //模拟取数据
                DataTable dt1=dt;
                DataRow dr1=dt.Rows[0];
                Person p = new Person();            //转化实体
                p.Age = dr1["age"] is DBNull ? null : Convert.ToInt32(dr["age"]);            //报错:错误 1 无法确定条件表达式的类型,因为“<null>”和“int”之间没有隐式转换
            }
        }
        class Person
        {
            public int? Age { get; set; }        public DateTime? Brithday { get; set; }
        }