关于datagridview 如何分类统计显示

Kettering 2008-08-25 10:36:10
一月 二月 三月

北京 张三 100 100 200
北京 李四 200 300 100
北京 300 400 300 (这个是北京的合计)


上海 王五 100 300 200
上海 李六 300 200 300
上海 400 500 500 (上海合计)

这样的结构用 datagridview 能从数据库里读出 分月的数据,然后按地区 统计合计值么?
...全文
640 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljylyzq 2009-02-10
  • 打赏
  • 举报
回复
我也正考虑此问题关注
Kettering 2008-08-26
  • 打赏
  • 举报
回复
目前在入库时,加入合计字段,并在数据更改时,对数据进行重新统计入库

好麻烦

==!
gh_li 2008-08-25
  • 打赏
  • 举报
回复

Dim dt As New DataTable '明细(select语句)
Dim dtSum As New DataTable 'group by 取汇总 只有一行(select .... group by ...)
Dim newRow As DataRow = dt.NewRow
newRow.ItemArray = dtSum.Rows(1).ItemArray
dt.Rows.Add(newRow)'可能会列数不一样,不过可以在select ... group by 语句中处理
DataGridView1.DataSource = dt
格拉 2008-08-25
  • 打赏
  • 举报
回复
办法很多,取个合适的吧
abc83915 2008-08-25
  • 打赏
  • 举报
回复
你可以先加到TABLE中在用TABLE绑定到datagridview
Kettering 2008-08-25
  • 打赏
  • 举报
回复
忘记说是在winform 下了

用 Group by 可以分组,然后合计 合计值显示呢
主要是在分组后 添加一个合计行,并计算出来
GhostAdai 2008-08-25
  • 打赏
  • 举报
回复
group by 分组列
hs1983 2008-08-25
  • 打赏
  • 举报
回复
可以参考:
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
SlaughtChen 2008-08-25
  • 打赏
  • 举报
回复
在每个地区下 手动加Column 应该可以吧?
yagebu1983 2008-08-25
  • 打赏
  • 举报
回复
没见过呢!!
关注!!
Kettering 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 GhostAdai 的回复:]
晕,还要单行记录,用水晶报表吧,单用SQL语句老衲是无能为力了,或许等神人出现能用SQL语句解决,阿弥陀佛~
[/Quote]

贫僧为些事纠结良久亦~~~~~~~
GhostAdai 2008-08-25
  • 打赏
  • 举报
回复
晕,还要单行记录,用水晶报表吧,单用SQL语句老衲是无能为力了,或许等神人出现能用SQL语句解决,阿弥陀佛~
Kettering 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 GhostAdai 的回复:]
如果你数据库里的数据就是你写的那种行列表示的话:
select 地区,sum(一月),sum(二月),sum(三月) from 表 group by 地区
[/Quote]

这样只会把 最后的 SUM 值给显示出来
每单行的记录还是没有显示出来


数据库记录

地区 姓名 一月 二月 三月

北京 张三 100 100 200
北京 李四 200 300 100
上海 王五 100 300 200
上海 李六 300 200 300


Datagridview 显示出来

地区 姓名 一月 二月 三月
北京 张三 100 100 200
北京 李四 200 300 100
北京 300 400 300
上海 王五 100 300 200
上海 李六 300 200 300
上海 400 500 500
tiancs 2008-08-25
  • 打赏
  • 举报
回复
用repeater 嵌讨 gridview
Kettering 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gh_li 的回复:]
VB.NET codeDimdtAsNewDataTable'明细(select语句)DimdtSumAsNewDataTable'group by 取汇总 只有一行(select .... group by ...)DimnewRowAsDataRow=dt.NewRow
newRow.ItemArray=dtSum.Rows(1).ItemArray
dt.Rows.Add(newRow)'可能会列数不一样,不过可以在select ... group by 语句中处理DataGridView1.DataSource=dt
[/Quote]

这样只是把分类的合计显示出来了,可是每条数据没有显示出来


我尝试过用 DataBindingComplete 事件后,再处理 未果

请达人们赐教
GhostAdai 2008-08-25
  • 打赏
  • 举报
回复
如果你数据库里的数据就是你写的那种行列表示的话:
select 地区,sum(一月),sum(二月),sum(三月) from 表 group by 地区
Kettering 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 clxcxx 的回复:]
办法很多,取个合适的吧
[/Quote]

比如 ……
Kettering 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 abc83915 的回复:]
你可以先加到TABLE中在用TABLE绑定到datagridview
[/Quote]

目前在用这个办法解决,显示是没有什么问题了,可是在数据控制时问题出来了

修改 删除 都会有大量的数据操作。。。。
好麻烦

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧