我在数据库中定义了一个表,结构如下。
字段为:id datetime age(byte) salary(int) name(string)
1 2007-10-10 30  10000 zs
2 2009-10-10 31  20000 ls
3 2010-10-10 32  30000 ww现在需要通过datagrid显示,但是要求没有记录的要显示N/A,且不显示id:
2007-10-10 1    10000 zs
2008-10-10 N/A  N/A   N/A
2009-10-10 2    20000 ls
2010-10-10 3    30000 ww
我的问题是:
1.SQL用“SELECT *.....”,datagrid中如何显示除id外的数据。
2.如何在我需要的地方插入n/a?我试过插入“n/a”,但是数据类型不匹配。请高手指教。

解决方案 »

  1.   

    1.select datatime,age,salary,name from 表 where XXXXX
    2.你表里根本没有2008-10-10这一行,又怎么select出来插入NA?
      

  2.   

    datagrid里不直接用BoundField,用TemplateColumn里加个textbox来显示
      

  3.   

    1 id列的值是怎么显示的,其他列的值也可以怎么显示
    2 如果数据表中已经存在行,只是要求值为null或者空的显示N/A可以这样做
    SELECT ID,ISNULL(Age,'N/A') AS Age,ISNULL(Salary,'N/A') AS Salary,ISNULL(Name,'N/A') AS Name from 表名
      如果既有null也有空那就用case when 处理
      SELECT ID,Age=Case When Age='' then 'N/A'
                         When Age is null then 'N/A'
                         else Age end,
                。
    3 如果是数据表中没数据而又想加上空行,这就麻烦了,或者写个存储过程或者在程序中从新构造数据源了
      

  4.   

    忘了说了,如果Age,Salary是数值类型,可以使用 Convert或Cast转换成varchar
      

  5.   


    [color=#FF0000]就是数据表中没有那行数据![/color]而且我的字段很多,但只有id不显示,所以要用SELECT *先全部找出来。
    我的思路是在返回的DataTable里历遍数据,发现空了就用insertat方法插入一空的ROW。
    根我所知,DataGrid有一个NullText的属性用于显示Null数据,不知道如何设置。