数据库中的表结构是:
id ,state,  reason
1    已审核   正确
1    已审核   正确
1    已审核   正确
2    未审核   错误
2    未审核   错误
3    未审核   不正确
现在在datagrid中要显示成这样编号  审核状态  原因1  原因2  原因3 
1     已审核    正确   正确   正确
2     未审核    错误   错误   不正确这样显示
还要在  审核状态  原因1  原因2  原因3 这四列上加一个表头为内勤审核,
本来这个显示的界面就用了存储过程根据不同的条件查询,现在老板还要这样显示,
请那位高手帮忙解决一下拉!
问题解决立即结帖!!!!!!

解决方案 »

  1.   

    该什么绑定还是怎么绑定,多表取数据是一样的,添加绑定列
    <asp:BoundColumn DataField="id" HeaderText="编号"></asp:BoundColumn>
    <asp:BoundColumn DataField="state" HeaderText="状态"></asp:BoundColumn>
    <asp:BoundColumn DataField="reason" HeaderText="审核状态"></asp:BoundColumn>
    <asp:BoundColumn DataField="*" HeaderText="原因1"></asp:BoundColumn>
    <asp:BoundColumn DataField="*" HeaderText="原因2"></asp:BoundColumn>
    <asp:BoundColumn DataField="*" HeaderText="原因3"></asp:BoundColumn>
      

  2.   

    自己 封个对象
    class check()
    {
    id;
    state;
    reason1;
    reason2;
    reason3;
    }datagrid的数据原绑 list 
    list是由 check()对象组成
    <asp:BoundColumn DataField="id" HeaderText="编号"></asp:BoundColumn>
    <asp:BoundColumn DataField="state" HeaderText="审核状态"></asp:BoundColumn>
    <asp:BoundColumn DataField="reason1" HeaderText="原因1"></asp:BoundColumn>
    <asp:BoundColumn DataField="reason2" HeaderText="原因2"></asp:BoundColumn>
    <asp:BoundColumn DataField="reason3" HeaderText="原因3"></asp:BoundColumn>
      
    自己在底层 把数据重数据库取出来后 填入相应的check 对象里面
      

  3.   

    使用repeater使用SQL实现交叉表
    如果使用的是SQL2005交叉表的实现更简单,查查资料吧。
      

  4.   

    用datagrid的模板列就可以搞定啦。
      

  5.   

    你先把数据从库里取出来放在一个dataset里
    创建一个datatable
    datatable创建列编号 、状态、原因1、原因2、原因3
    循环dataset处理把数据插入datatable里
      

  6.   

    然后再将datatable绑定到datagrid上
      

  7.   

    create view biao
    as
    select a.reason as 原因3 from 表 a,表 b where a.id=b.id and a.state=b.state and a.reason=b.reason
      

  8.   

    可能是大家不理解我的意思,
    reason没有什么直接联系,
    数据也是从这一张表中的出来的,
    跟其他表无关
      

  9.   

    Try:   
        
      create   table   #T   
      (id   varchar(2)   ,   n1   varchar(2)   ,   n2   varchar(2))   
        
      Insert   into   #t   
      select   '01',     'x',     'x'   Union   
      select   '02',     'x',     'y'   Union   
      select   '03',     'x',     'z'   Union   
      select   '04',     'y',     'x'   Union     
      select   '05',     'y',     'y'   Union     
      select   '06',     'y',     'z'   Union   
      select   '07',     'z',     'x'   Union   
      select   '08',     'z',     'y'   Union   
      select   '09',     'z',     'z'   
        
      Select   *   from   #t   
        
      declare   @sql1   varchar(8000)   
      declare   @sql2   varchar(8000)   
      declare   @sql3   varchar(8000)   
        
      Select   @sql1   =   ''   ,     @sql2   =   ''   ,   @sql3   =   ''   
        
      Select   @sql1   =   @sql1   +   ',   max(case   when   id   =   '''   +   id   +   '''   then   id   else   ''''     end)   as   '''+   'col'   +   id   +   ''''   
      from       #t   
      group   by   id   
      Select   @sql2   =   @sql2   +   ',   max(case   when   id   =   '''   +   id   +   '''   then   n1   else   ''''     end)   '     
      from       #t   
      group   by   id   
      Select   @sql3   =   @sql3   +   ',   max(case   when   id   =   '''   +   id   +   '''   then   n2   else   ''''     end)   '     
      from       #t   
      group   by   id   
        
      Select   @sql1   =   stuff(@sql1   ,   1   ,   1,   '')   
      Select   @sql2   =   stuff(@sql2   ,   1   ,   1,   '')   
      Select   @sql3   =   stuff(@sql3   ,   1   ,   1,   '')   
        
        
      Select   @sql1   =   '   Select       '   +   @sql1   +   '   from   #t   '   
      Select   @sql2   =   '   Select       '   +   @sql2   +   '   from   #t   '   
      Select   @sql3   =   '   Select       '   +   @sql3   +   '   from   #t   '   
      Exec(@sql1   +   '   union   all   '   +   @sql2   +   '   union   all'   +   @sql3)   
        
      drop   table   #