我这样认为的,因为科目数量不确定,可以在需要时添加某个科目。所有datagridview的列是不确定的,你这样去绑定数据肯定行不通,每次动态加载的时候都要去判断是否有新的列,还要想怎么去添加上去。所以我的想法是先用select distinct Subject from test 找出现有所有的科目,并用DateTable dtT来绑定,再
for (int k = 0; k < dtt.Rows.Count; k++)
{
M_Sql += "sum(case
Subject
when
'" + dtt.Rows[k]["Subject"].ToString().Trim() + "'
then
Sources
end)
as
'" + dtt.Rows[k]["Subject"].ToString().Trim() + "',";
}
遍历取得动态的Sql语句
AllSql = "select
Number as 学号," + M_Sql + " AVG(Sources) as 平均分 from
test group
by
Number;";
从而实现动态加载。不过这样做法就是确定不了科目列的顺序,可能重新绑定数据的时候,那科目的那些列的顺序会发生变化。
PS:其实我昨天就把我想法写上去分享一下了,可是这两天手头工作比较多,才等到现在有空来写一下。虽然你已结贴,但是我还是应该写出来共同探讨一下。