在SQL2000 中,当数据格式设置为smalldatetime时,如果不输入日期。系统会默认为1900-01-01,而当我将数据库中的数据绑定到DATAGRID中时,我想把1900-01-01这个日期不显示。其它日期都正常显示,该怎么办?
因为1900-01-01是个虚假的日期,是系统生成的。

解决方案 »

  1.   

    在ItemDataBind中把它过滤掉不就OK了,非常简单事情,还有在sql中用case when 来过滤掉也可以啊
      

  2.   

    if(e.Item.Cells[6].Text =="1900-01-01")e.Item.Cells[6].Text = "";
      

  3.   

    两种方法
    1)在ItemDataBound事件中写
    if(e.Item.ItemIndex >= 0)
    {
        if (e.Item.Cells[列的Index].Text=="1900-01-01")
        {
            e.Item.Cells[列的Index].Text=="";
        }
    }2)在查询语句里写
      select 其他的列,case 时间列 when '1900-01-01' then '' end as 时间列 from 表名
      

  4.   

    楼上的方法没用。1)种方法起不了任何作用。2)1900-01-01是屏蔽了,但同时其它日期确被显示为NULL。
      

  5.   

    还有,在DATAGRID控件中好像找不到ItemDataBind事件呀。
      

  6.   

    1)写错了 e.Item.Cells[列的Index].Text=="";应该写成 e.Item.Cells[列的Index].Text="";2)也写错了
     select 其他的列,case 时间列 when '1900-01-01' then '' else 时间列 end as 时间列 from 表名
      

  7.   

    问题解决了,正确的SQL语句应该这样写:
    select recdate=case recdate when '1900-01-01' then '' else substring(convert(char(10),recdate,120),1,10) end from ord10104
    还是很感谢大家给我提供思路,如果哪个朋友知道在DATAGRID中如何屏蔽,请告诉我,不胜感激。