日期:2014-05-17  浏览次数:20371 次

GridView怎么切换到另外的表?
求教,我用GridView做了一个显示班级成绩的网站,但是一个班级的做好了,要切换成别的班级就不知道怎么搞了。我想用一个文本框,里面输入(或选择)班级.  
  比如,Class1,Class2,Class3……等等。

  我的思路是,在select语句中把“表”名用变量代替,但是就是弄不好,哪位好人抽点时间指点下啊,先谢谢了

------解决方案--------------------
可以把班级放在一个下接列表中以供选择,选择不同项时SelectedIndexCahnged事件,调用不用方法以获取不同表数据,也就是说每个方法负责一个表的数据绑定! 当然想自动回发的话,Dropdownlist的AutoPostBack属性设为true;
------解决方案--------------------
另外写一个绑定数据DataBound(班级参数)方法根据班级参数拼凑sql语句

SelectedIndexCahnged事件里调用DataBound(班级参数)就行了
------解决方案--------------------
Dropdownlist事件:
...
BindClassInfo(DropdownList1.SelectedValue);
...

方法:
public void BindClassInfo(string classId)
{
string sql=String.Empty;

switch(classId)
{
case "1":
sql="select * from 表1";
break;
case "2":
sql="select * from 表2";
break;
case "3":
sql="select * from 表3";
break;
default:
sql="select * from 表1";
}

SqlConnection conn = new SqlConnection(...);
SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
DataTable dt = new DataTable();
sda.Fill(dt);

GridView1.DataSource = dt;
GridView1.DataBind();
}
...
------解决方案--------------------
楼上说得相当详细。
------解决方案--------------------
我不知道你的数据库设计是怎样的,
但是既然能得到一个班级,
就肯定可以得到其他的班级啊。

首先你班级肯定在数据库中是一个表中的字段吧?
而且你这个班级应该是从数据库读出来的把。
你表中“班级”这个字段有一个班就可以有多个班啊(只是个数据的问题)。
只不过检索条件换一下换成别的班级不就可以查出来了吗?
为什么要切换到别的表呢?
一个班级一个表???
。。。
如果是这种情况,那你的数据库设计就很有问题了。
正常你应该是年纪和班级这类在一个表呢。
人员和基本信息有一个表,
成绩再有一个表。
数据直接关联就可以得到你想要的结果。
------解决方案--------------------
很显然楼主数据库设计不合理. 多个班级的数据都是在一个数据库中,只是有个字段"班级编号"不同罢了.