比如有这样的一个学生表学生ID 学生所在班级
1       1
2       1
3       1
  
5000    10我要把每个班的学生显示在GridView里。
那么我得写10个SQL语句。
select * from 学生表 where 班级=1
select * from 学生表 where 班级=2

select * from 学生表 where 班级=10
这样查询效率很低,每个查询都要跟5000条记录再逐一对比一次。我想要这样的
select * from 学生表 order by 班级当然这样出来是在一个dataset.tables[0]里
有什么办法
GridView1.DataSource = dataset.tables[0].1班的记录
GridView1.DataSource = dataset.tables[0].2班的记录

解决方案 »

  1.   

    就如你所说:
    GridView1.DataSource = dataset.tables[0].1班的记录
    GridView1.DataSource = dataset.tables[0].2班的记录给GridView1的DataSource赋不同的记录集,但是你绑定只能绑一个记录集啊?如果你的意思是不想多次查询的话,那么用viewstate保存全部记录,
    然后用全部记录.select(条件)来绑定GridView吧。
      

  2.   

    我写10句有什么累的,关于是效率效率,啊,想想数据库怎么查询
    select * from 学生表 where 班级=1
    的时候,从第1条记录开始对比,看班级是不是1
    一直对比到第N条记录select * from 学生表 where 班级=2
    的时候,又再一次从第1条记录开始对比,看班级是不是2
    一直对比到第N条记录
      

  3.   


    select * ffrom 学生表 返回所有数据 返回一个DataTable然后再匹配。DataTable.Select("条件");转换数据源 绑定你的Gridview
     
      

  4.   

    [url=http://msdn.microsoft.com/zh-cn/library/59wzthcw.aspx]
    protected virtual int Fill(
    DataTable[] dataTables,
    IDataReader dataReader,
    int startRecord,
    int maxRecords
    )
      

  5.   

    IDataReader dataReader,
    这个参数什么意思
      

  6.   

    用视图非常简单:
    ds.Tables[0].DefaultView.RowFilter = "学号='20049102'";//定义筛选表达式
    GridView1.DataSource=ds.Tables[0].DefaultView;筛选表达式你自己定义一下,注意数据类型(字符串型要加单引号,int型则不要加)。
      

  7.   

    select * from 学生表 where 班级=@classid不知道楼主所说的"这样查询效率很低,每个查询都要跟5000条记录再逐一对比一次。"是什么意思,如果学生表班级字段做了索引,不会是全表扫描的
      

  8.   

    RowFilter不能重复使用啊?
    ds.Tables[0].DefaultView.RowFilter = "学号='20049102'";//定义筛选表达式
    GridView1.DataSource=ds.Tables[0].DefaultView;ds.Tables[0].DefaultView.RowFilter = "学号='20049103'";//定义筛选表达式
    GridView2.DataSource=ds.Tables[0].DefaultView;
      

  9.   

    1.返回一个DataTable  然后利用其Select(“班级ID=1”) 来筛选出各个班级的学生 在进行绑定
    2.返回一个DataTable  dt
    DataView dv = new DataView(dt);
    dv.RowFilter="班级ID=1";//条件
    DataTable dt1 = dv.toTable();//获取班级1的列表
    绑定就不说了 。。
      

  10.   

    GridView2.DataSource=ds.Tables[0].DefaultView;
    改成:GridView2.DataSource=ds.Tables[0].DefaultView.ToTable();