各位仁兄: 
   我写了一个存储过程--根据一个不同参数会传回不同的结果集-- 比如我输入不同的用户名---输入a时---数据库会返回
2个结果集 --  输入b时会返回10个结果集---也就是说我在.aspx.cs 中可以根据  Response.Write(ds.Tables.Count);
判断出返回的结果集的个数--然后绑定到数据源控件--  比如2条时:  
GridView1.DataSource = ds.Tables[0];
 GridView1.DataBind();GridView2.DataSource = ds.Tables[1];
        GridView2.DataBind();
那么如果是十条时我就要放十个GridView---问题是:我能不能把返回的结果集放到一个GridView里面(也就是不管他返回多少个记录集)--------------求各位帮忙--谢谢!

解决方案 »

  1.   

    如果几个结果集是结构是一样的话,可以使用Merge合并所有结果集,for(int i=1;i<ds.Tables.Count;i++)
    {
       ds.Tables[0].Merge(ds.Tables[i]);
    }
    GridView1.DataSource = ds.Tables[0];
     GridView1.DataBind();
      

  2.   

    要么用笨方法,生成10个并显示DataGridView[] dgs = new DataGridView[ds.Tables.Count]{};
    for(int i =0 ; i < ds.Tables.Count ; i ++ )
    {
        dgs[i] = new DataGridView();
        //加入页面中
        Page.Form.Control.Add(dgs[i]);
        dgs[i].DataSource = ds.Tables[i];
        dgs[i].DataBind();
        
    }
    //要么合并.十个记录集的数据放到一个里面显示
      

  3.   

    如果结构相同,那可以在SQL中就用union把结果合并在一起返回,前台就更省事
    如果结构不同,就需要分别定义多个grid来展示了。可以考虑像2楼的办法动态产生控件并绑定