我这样认为的,因为科目数量不确定,可以在需要时添加某个科目。所有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:其实我昨天就把我想法写上去分享一下了,可是这两天手头工作比较多,才等到现在有空来写一下。虽然你已结贴,但是我还是应该写出来共同探讨一下。