各位江湖高手,小辈真诚求教!
1、在asp web应用程序页面 ,填加一文本框,输入日期型数据,再将该数据追加到sql数据库的表中,但是 当不输入时, 数据库表中自动赋值为1900-01-01,请问如何使textbox框中不填入内容,数据库表中该列属性就为空?
2、希望textbox中输入的日期不小于当前系统时间,如何实现该检错机制,具体该如何做?

解决方案 »

  1.   

    用正则判断一下是否是日期格式如何---------------------------------------
    网站改版,全部用.NET重写,大家批批^_^
    好不好给个意见,非常感谢
    记得发邮件给我哦[email protected]://www.cn5135.com
      

  2.   

    1.是不是你的数据库里面对这个字段设置了默认值,你得取消掉
    2.在asp textbox标签添加 onblur="checkdate()";
    function checkdate()
    {
       if (document.all.textboxid.value<>'')
    {
       if(当前输入>=系统时间)//抱歉这个时间函数没用过你自己查下
    {
     
    }
    }
    }
      

  3.   

    不过这样可能还是有问题,最好把这个函数添加到提交前按下的按钮(onclick='checkdate()')
      

  4.   

    判断文本框.Text.Trim()是否为空,若为空则使用DBNull更新数据。
    如果觉得js太麻烦可以考虑用
    try
    {
        Convert.ToDateTime(文本框.Text.Trim()) ;
        之后的操作
    }
    catch
    {
        不是日期的操作
    }
      

  5.   

    DateTime t1 = new DateTime(100);
    DateTime t2 = new DateTime(20);if (DateTime.Compare(t1, t2) >  0) Console.WriteLine("t1 > t2"); 
    if (DateTime.Compare(t1, t2) == 0) Console.WriteLine("t1 == t2"); 
    if (DateTime.Compare(t1, t2) <  0) Console.WriteLine("t1 < t2");
      

  6.   

    需要对textbox的内容尤其是空值进行处理才行
    自定义一个方法来处理
    private string SqlDataTime(string userWebControlString)
    {
      if(userWebControlString.Trim().Length == 0)
        return("null");/return("default");
      else
        return("'"+userWebControlString+"'");
    }
    然后在执行Sql语句的时候注意一下语法就行了,只要数据库此对应字段允许为空;
    用null或者default更新数据库时,null和default不是字符串,这点要注意
      

  7.   

    1.不填写则赋值DBNull.Value
    2.DateTime.Now
      

  8.   

    我的疑问是:
        在建数据表时,我默认的(预计到达时间)就是null,但是插入数据库时,即使不填写,也会出现1900-01-01。
        我的数据库表中该列属性设为“date”型,在asp web页面中,我用textbox框接受用户填写日期,是string 型,但是我要和系统时间(datetime型)比较,又不能做强制类型转换,而且我希望在客户端就进行检错。
        对于js语言没接触过,看得不是很懂,希望各位大虾在指点指点!
      

  9.   

    用 RangeValidator 控件属性Type = DateTime在服务器端设置适当的参数
      

  10.   


    1.
      这个问题我遇到过,有时为NULL,有时为1900-01-01
      在设计数据库时:
      a.设计时间字段可以为空:  则系统会自动为System.DBNull.Value,即NUll
      b.设计时间字段不为空:   则系统会自动为:  1900-01-01
    2.最好做一个时间“用户控件”来处理
      或者用三个DropDownList来表示,分别表示年月日,这样你可以初始化它们到你所显示的值
          又不会让用户输入错,大部分用户不知道SQL SERVER 2000的日期格式是怎么表示的,用
          TextBox很难添正确格式
    OK