iBatis中空的日期在插入的时候怎么插入一个空的,而不是最小日期(1889-01-01...)
insert tab (id, sdt) values (#id#,#sdt#)
在对象的日期类型上如果不初始赋值,会报错,但日期没法赋给null值
查帮助说可以用nullable,但没找到日期的用法,有没有办法

解决方案 »

  1.   

    那一列是可以空的
    配置文件如下:
    <insert id="Insert" parameterClass="Person" resultClass="int">
          insert into PERSON
          (PER_ID, PER_FIRST_NAME, PER_LAST_NAME,
          PER_BIRTH_DATE, PER_WEIGHT_KG, PER_HEIGHT_M)
          values
          (#Id#, #FirstName#, #LastName#,
          #BirthDate#, #WeightInKilograms#, #HeightInMeters#)
        </insert>程序代码片断
      Person newperson = new Person();
      for (int i = 1; i <= 1000; i++)
      {
         newperson.Id = i;
         newperson.FirstName = "No." + i.ToString();
         newperson.LastName = i.ToString();
         //newperson.BirthDate = DateTime.Now;
         Mapper.Instance().Insert("Insert", newperson);
       }
       newperson = null; 
    如注释newperson.BirthDate = DateTime.Now;
    则会报
    SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 
    这是因为日期强类型未初始化,但我怎么让一个空的值持久化?
    因为有些日期型的列不一定必须填,包括数字型等
      

  2.   


    private DateTime? _BirthDate = null;
    public DateTime? BirthDate
    {
      get { return _BirthDate; }
      set { _BirthDate = value; }
    }