通过查询得到数据  
  21  sun  op1
  21  sun  op2
  21  sun  op3
  22  li   feng1
  22  li   feng3
需要得到结果显示如下
  sun   op1     op2     op3
  li    feng1   feng3
相同的列不重复显示,而且根据第一列(或者第二列)来确定数据放在哪一行。
我是绑定到不规则GridView中

解决方案 »

  1.   

    第一,可以写存储过程组合成你要的格式,第二,自己填充grid
      

  2.   

    咋没人啦?自己顶List<PartOp> po = JobPartOpManager.GetPartType(job_id, Type_id);//数据源绑定
            GridView1.DataSource = po;
            int count = po.Count;        BoundField bf11 = new BoundField();
            BoundField bf22 = new BoundField();
            bf11.HeaderText = "零件名";
            bf11.DataField = po[0].Part_name;
            bf11.SortExpression = po[0].Part_name;
            GridView1.Columns.Add(bf11);        bf22.HeaderText = "工序1";
            bf22.DataField = po[0].Op_name;
            bf22.SortExpression = po[0].Op_name;
            GridView1.Columns.Add(bf22);        for (int i = 1; i < count; i++)
            {
                if (po[i].Traveler_id == po[i - 1].Traveler_id)
                {
                    BoundField bf = new BoundField();
                    bf.HeaderText = "工序" + (i+1);
                    bf.DataField = po[i].Op_name;
                    bf.SortExpression = po[i].Op_name;
                    GridView1.Columns.Add(bf);
                }
                else 
                {
                    BoundField bf1 = new BoundField();
                    BoundField bf2 = new BoundField();
                    bf1.DataField = po[i].Part_name;
                    bf1.SortExpression = po[i].Part_name;
                    GridView1.Columns.Add(bf1);                bf2.DataField = po[i].Op_name;
                    bf2.SortExpression = po[i].Op_name;
                    GridView1.Columns.Add(bf2);
                }
            }
            GridView1.DataBind();
    这种绑定有错……
    不知道可行性怎么样?
      

  3.   

    用程序当然容易实现啦,要是用SQL怎么搞
      

  4.   

    用SQL最简单如果实在要用程序我想了个办法。。hashTablekey   value
    21     sun-op1-op2-op3
    22     li-feng-feng2
    你搞成这样的,在构造你想要的表
    在绑定。。问题不大了吧
      

  5.   

    distinct第一个字段一下,存进临时表,然后while一下,填充,搞定。
      

  6.   

    这里有一个例子:http://zhge4833727.blog.163.com/blog/static/46804144200763350530/
      

  7.   

    新建一个datatable,根据条件查询后填充到datatable里,然后绑定!
      

  8.   

    http://blog.csdn.net/hebeijg/archive/2010/09/06/5866181.aspx
    这里正好解决你的问题
      

  9.   

    以前请教过一个同事...用自联接..还有stuff函数..xml/patch..
    忘了..嘿嘿...不好意思..
      

  10.   

    14楼的可以解决我的问题,stuff函数
    13楼的纵横专题问题 虽然可行,但是开销太大了不推荐