应该是传入的0或者‘’吧。可以直接给NULL啊

解决方案 »

  1.   

    把DBNull.Value赋值给你的存储过程参数。
      

  2.   

    如果你的控件的状态是不可用的话,取其值时可以用DbNull.Value来代替其值,如果你的数据库日期字段是可以为空的,则可以把这个值写到数据里,就成了数据库里的<NULL>值了.
      

  3.   

    虽然Disable了,可是还是有值,而值就是那个最小值你可以通过判断是不是被Disable了啊,如果是就日期弄成""
      

  4.   

    TO ALong_Yue() :   你好,在数据库中可以直接插入,但是在程序中这种方法不行!
      

  5.   

    TO:zhzuo(秋枫)
    TO :DbNull.Value:
    老兄,我可以这样吗?
             private System.DateTime _chkresolvetime;
              _chkresolvetime=DbNull.Valuestring strsql="insert into tBillMGR (alarmtime,sendtime) values('"+_chkresolvetime+"','"+_chkresolvetime+"')";
    这样插入的结果,还是1900-1-1,  错在哪里呢?请名示!!谢谢!
      

  6.   

    if(chkresolvetime!="")
      string strsql="insert into tBillMGR (alarmtime,sendtime) values('"+_chkresolvetime+"','"+_chkresolvetime+"')";
    else
      string strsql="insert into tBillMGR (alarmtime,sendtime) values(NULL+","+NULL)";
      

  7.   

    to  lkk2073(三楼楼长) :大哥,还有别的方法吗?这种我也想过的,可是,当要插入多种时间植时,这种判断有点麻烦!能否用 DbNull.Value这种类似的解决方法???谢谢!!!
      

  8.   

    如果chkresolvetime之为空或0 则自动存为1900-01-01
    可采用SQL 里的Case When '"+_chkresolvetime+"' is null then 'null' else  '"+_chkresolvetime+"' end
      

  9.   

    你用字符串值太简单了,不可能通用,你这样写不行么???
    private object objTime;if (this.DateTimeCtrl.Enable)
    {
        objTime = this.DateTimeCtrl.Value
    }
    else
    {
        objTime = DbNull.Value;
    }string strsql="insert into tBillMGR (alarmtime,sendtime) values(@alarmtime, @sendtime);
    SqlParameter p1 = new SqlParameter("@alarmtime", objTime);
    SqlParameter p2 = new SqlParameter("@sendtime", objTime);SqlCommand cm = new SqlCommand(strSql, con);
    cm.Parameters.Add(p1);
    cm.Parameters.Add(p2);
    cm.ExecuteNoQuery();
    .......
      

  10.   

    你用SqlParameter来传值,不要用字符串来组合了,难看又难组.