先建立一个类封装你的数据(成员可参考数据库表的记录)比如: class score { string name; int chinses; int math; int english; }然后从数据库取了数据以后,按表字段和成员变量的关系填充进去,一条记录填充一个类的实例 ,比如 score s=new score (取出来的字段值序列)然后用集合的数据结构这样定义 IList<score> sList=new List<score>(); 将刚才建里的实例填充进去 sList.Add(s); 有多少个score类的实例就填充多少次最后把IList<>绑定到控件: DataGridView.DataSource=sList;
最好是在数据库端实现,用rollup 例如: create table #t(a int,b int,c int,d int,e int) insert into #t values(1,2,3,4,5) insert into #t values(1,2,3,4,6) insert into #t values(1,2,3,4,7) insert into #t values(1,2,3,4,8) insert into #t values(1,3,3,4,5) insert into #t values(1,3,3,4,6) insert into #t values(1,3,3,4,8) insert into #t values(1,3,3,4,7)insert into #t values(2,2,2,4,5) insert into #t values(2,2,3,4,6) insert into #t values(2,2,4,4,7) insert into #t values(2,2,5,4,8) insert into #t values(2,3,6,4,5) insert into #t values(2,3,3,4,6) insert into #t values(2,3,3,4,8) insert into #t values(2,3,3,4,7)只有一个分类汇总列时,只需要一个合计。只需要增加with rollup即可。 select case when grouping(a)=1 then '合计' else cast(a as varchar) end a, sum(b),sum(c),sum(d),sum(e) from #t group by a with rollup
dagridview
循环每行数据时,添加一个 统计列。
在绑定 DGRV
姓名 语文 数学 英语 ……
-------------------------
小张 34 45 56
小明 23 43 54
……
就是说行和列都是运态的。我现在就是不知道怎么让得到的姓名list在datagridview中让它列显示。
datagridview1.datasources = 你的数据源;
class score
{
string name;
int chinses;
int math;
int english;
}然后从数据库取了数据以后,按表字段和成员变量的关系填充进去,一条记录填充一个类的实例 ,比如
score s=new score (取出来的字段值序列)然后用集合的数据结构这样定义
IList<score> sList=new List<score>();
将刚才建里的实例填充进去
sList.Add(s);
有多少个score类的实例就填充多少次最后把IList<>绑定到控件:
DataGridView.DataSource=sList;
例如:
create table #t(a int,b int,c int,d int,e int)
insert into #t values(1,2,3,4,5)
insert into #t values(1,2,3,4,6)
insert into #t values(1,2,3,4,7)
insert into #t values(1,2,3,4,8)
insert into #t values(1,3,3,4,5)
insert into #t values(1,3,3,4,6)
insert into #t values(1,3,3,4,8)
insert into #t values(1,3,3,4,7)insert into #t values(2,2,2,4,5)
insert into #t values(2,2,3,4,6)
insert into #t values(2,2,4,4,7)
insert into #t values(2,2,5,4,8)
insert into #t values(2,3,6,4,5)
insert into #t values(2,3,3,4,6)
insert into #t values(2,3,3,4,8)
insert into #t values(2,3,3,4,7)只有一个分类汇总列时,只需要一个合计。只需要增加with rollup即可。
select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,
sum(b),sum(c),sum(d),sum(e) from #t group by a with rollup
connection.Open(); string sql = "select * from tablename"; ///初始化data1
data1 = new SqlDataAdapter(sql, connection);
///填充dataset data1.Fill(data, "tablename");
///指定显示数据源
dataGridView1.DataSource = data.Tables["tablename"];
connection.Close();
表 字段:id 姓名 语文 数学 英语
数据: 0 严晖 100 100 100
?
不是这样吗?