比如有这样的一个学生表学生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 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班的记录
GridView1.DataSource = dataset.tables[0].1班的记录
GridView1.DataSource = dataset.tables[0].2班的记录给GridView1的DataSource赋不同的记录集,但是你绑定只能绑一个记录集啊?如果你的意思是不想多次查询的话,那么用viewstate保存全部记录,
然后用全部记录.select(条件)来绑定GridView吧。
select * from 学生表 where 班级=1
的时候,从第1条记录开始对比,看班级是不是1
一直对比到第N条记录select * from 学生表 where 班级=2
的时候,又再一次从第1条记录开始对比,看班级是不是2
一直对比到第N条记录
select * ffrom 学生表 返回所有数据 返回一个DataTable然后再匹配。DataTable.Select("条件");转换数据源 绑定你的Gridview
protected virtual int Fill(
DataTable[] dataTables,
IDataReader dataReader,
int startRecord,
int maxRecords
)
这个参数什么意思
ds.Tables[0].DefaultView.RowFilter = "学号='20049102'";//定义筛选表达式
GridView1.DataSource=ds.Tables[0].DefaultView;筛选表达式你自己定义一下,注意数据类型(字符串型要加单引号,int型则不要加)。
ds.Tables[0].DefaultView.RowFilter = "学号='20049102'";//定义筛选表达式
GridView1.DataSource=ds.Tables[0].DefaultView;ds.Tables[0].DefaultView.RowFilter = "学号='20049103'";//定义筛选表达式
GridView2.DataSource=ds.Tables[0].DefaultView;
2.返回一个DataTable dt
DataView dv = new DataView(dt);
dv.RowFilter="班级ID=1";//条件
DataTable dt1 = dv.toTable();//获取班级1的列表
绑定就不说了 。。
改成:GridView2.DataSource=ds.Tables[0].DefaultView.ToTable();