数据库里有一日期型字段,通过类让数据库添加记录,前台没有给该字段赋值,在类里却自动赋为0001-1-1 0:00:00,却又存不进去,提示:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
怎么才能给日期型字段赋null呢?
我类里的代码:
        string strSql = "";
        DataSet ds = new DataSet();
        DataRow dr;
        SqlCommandBuilder cb;        strSql = "SELECT * FROM T_StuInfo WHERE"
            + " ID = " + m.ID;            Cls_DataBase.cn.Open();
            SqlDataAdapter myAdapter = new SqlDataAdapter(strSql, Cls_DataBase.cn);
            cb = new SqlCommandBuilder(myAdapter);
            myAdapter.Fill(ds, "T_StuInfo");            //根据查询结果进行判断进行的操作是添加还是更新
            if (ds.Tables[0].Rows.Count == 0)
            {
                //添加新行
                dr = ds.Tables[0].NewRow();
                dr = SetMyProperty(dr);
                ds.Tables[0].Rows.Add(dr);
            }
            else
            {
                //更新
                dr = ds.Tables[0].Rows[0];
                dr = SetMyProperty(dr);
            }            myAdapter.Update(ds, "T_StuInfo");    private DataRow SetMyProperty(DataRow dr)
    {
        dr["Name"] = m.Name;
        dr["Password"] = m.Password;
        dr["Birthday"] = m.Birthday;
        dr["IDCard"] = m.IDCard;
        dr["Tel"] = m.Tel;
        dr["OverEduTime"] = m.OverEduTime;
        dr["College"] = m.College;
        dr["TestTime"] = m.TestTime;
        dr["Address"] = m.Address;
        dr["Postcode"] = m.Postcode;
        dr["IDC_Sex"] = m.eSex;
        dr["IDC_Nation"] = m.IDC_Nation;
        dr["IDC_Edu"] = m.IDC_Nation;
        dr["IDC_Speciallity"] = m.IDC_Speciallity;
        dr["IsTrain"] = m.IsTrain;
        dr["IDC_State"] = m.eState;
        dr["IsPay"] = m.IsPay;
        dr["PayTime"] = m.PayTime;      //错误就在这一句
        return dr;
    }

解决方案 »

  1.   


    dr["PayTime"] = m.PayTime;      //错误就在这一句 改成dr["PayTime"] = m.PayTime==null?"默认值":m.PayTime;
      

  2.   

    用DbNull.Value啊:dr["PayTime"] = m.PayTime == DateTime.MinValue ? DbNull.Value : m.PayTime;
      

  3.   

    不行啊,m.PayTime的值不是null,而是0001-1-1 0:00:00,不晓得这个值哪儿来的
      

  4.   

    你也可以在m 类 也就是定义PayTime 的类中,将PayTime 的默认值 设置一下
      

  5.   

    qie huan cheng DateTime   xxxx = New DateTime("xxxxx")
    ran hou zai xie ru shu ju ku 
      

  6.   

    DateTime 默认值就是0001-1-1 0:00:00  你可以做个比较如果等于这个值就换成null,3楼的方法应该能行!