我通过sql查询得到一个list表
姓名  张三  李四  王五
数学  76    88    98
英语  66    76    70
...
现在我想把表显示为:
姓名   数学   英语
张三   76     66
李四   88     76
王五   98     70
应该怎么办???
简单给小弟点代码,我看看应该怎么写~~~

解决方案 »

  1.   


    --sql版块这们的代码太多了!
    create table #student(UserName varchar(20),Subject varchar(20),Score int)
    insert into #student values('张三','语文',74)
    insert into #student values('张三','数学',83)
    insert into #student values('张三','物理',93)
    insert into #student values('李四','语文',74)
    insert into #student values('李四','数学',84)
    insert into #student values('李四','物理',94)
    /*
    想变成(得到如下结果): 
    姓名 语文 数学 物理 
    ---- ---- ---- ----
    李四 74   84   94
    张三 74   83   93
    */
    declare @Sql varchar(1000)
    set @sql='select b.UserName'
    select @sql=@sql+' , sum(case when b.Subject= '''+Subject+''' then Score else 0 end)['+Subject+'] '
    from (select distinct(Subject) from #student) b
    set @sql=@sql+' from #student b group by b.UserName'
    exec(@sql)
      

  2.   

    去sql版块找找!太多了!!!
      

  3.   


    这个贴子下面!!
    http://topic.csdn.net/u/20091111/15/60284a1c-c885-4ce4-8549-b3387ba68767.html?39389
      

  4.   

    呃....大哥...我这个list表是通过list.Add(model)的方法一点点凑出来的,该表不存在于数据库中,现在想用C#语句编译成我想要的格式
      

  5.   

    使用行转列
    在List<T>里就遍历构建datatable绑定数据
      

  6.   

    List<string> list = new List<string>();
    DataTable dt = new DataTable();
    DataRow dr = dt.NewRow();
    for (int i = 1; i < list.Count; i++)
    {
         dt.Columns.Add(i.ToString());
         dr[i] = list[i].ToString();
    }
    dt.Rows.Add(dr); 
    是这样么???