DataTable分组计算机功能

wwwiii520 2009-02-19 04:37:37
DataTable中有以下数据
1 a 30
2 a 34
3 b 33
4 b 33
5 a 343
. ....
......
......
想得到的结果是
a 总和
b 总和
也就是一个分组计算机功能
有什么好的解决方案,大家多多指教!
...全文
471 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wwwiii520 的回复:]
不行的.
又不是只有a 和 b 後面還有很多行咧.有c .d .e .f......
[/Quote]

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("C1", typeof(int)));
dt.Columns.Add(new DataColumn("C2", typeof(string)));
dt.Columns.Add(new DataColumn("C3", typeof(int)));
dt.Rows.Add(1, "a", 30);
dt.Rows.Add(2, "a", 40);
dt.Rows.Add(3, "b", 50);
dt.Rows.Add(4, "b", 60);
dt.Rows.Add(5, "c", 70);
dt.Rows.Add(6, "c", 80);
dt.Rows.Add(7, "d", 90);
List<string> list = new List<string>();
foreach (DataRow dr in dt.Rows)
{
if (!list.Contains(dr["C2"].ToString()))
{
Console.WriteLine(dr["C2"] + "总和:" + dt.Compute("sum(C3)", "C2='" + dr["C2"] + "'"));
list.Add(dr["C2"].ToString());
}
}
sprc_lcl 2009-02-19
  • 打赏
  • 举报
回复
object objSum = dt.Compute("sum(字段3)", "字段2='a'");
前提是知道a这个值,所以还是得循环

DataView dv = dt.DefaultView; 
dv.Sort = "字段2 asc";
string tempstr = "";
for(int i=0;i <dv.Count;i++)
{
if(tempstr != dv[i]["字段2"].ToString())
{
tempstr = dv[i]["字段2"].ToString();
//保存或打印tempstr和dt.Compute("sum(字段3)", "字段2='"+tempstr+"'");
}
}
wwwiii520 2009-02-19
  • 打赏
  • 举报
回复
不行的.
又不是只有a 和 b 後面還有很多行咧.有c .d .e .f......
Cherishny 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ojlovecd 的回复:]
C# code
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("C1", typeof(int)));
dt.Columns.Add(new DataColumn("C2", typeof(string)));
dt.Columns.Add(new DataColumn("C3", typeof(int)));
dt.Rows.Add(1, "a", 30);
dt.Rows.Add(2, "a", 40);
dt.Rows.Add(3, "b", 50);
dt.Rows.Add(4, "b", 60)…
[/Quote]
正解
lovehongyun 2009-02-19
  • 打赏
  • 举报
回复
参考10楼
我姓区不姓区 2009-02-19
  • 打赏
  • 举报
回复

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("C1", typeof(int)));
dt.Columns.Add(new DataColumn("C2", typeof(string)));
dt.Columns.Add(new DataColumn("C3", typeof(int)));
dt.Rows.Add(1, "a", 30);
dt.Rows.Add(2, "a", 40);
dt.Rows.Add(3, "b", 50);
dt.Rows.Add(4, "b", 60);
dt.Rows.Add(5, "a", 70);
Console.WriteLine("a总和:" + dt.Compute("sum(C3)", "C2='a'"));
Console.WriteLine("b总和:" + dt.Compute("sum(C3)", "C2='b'"));
/*
输出:
a总和:140
b总和:110
*/
che2piaopiao 2009-02-19
  • 打赏
  • 举报
回复
用Hashtable
cppfaq 2009-02-19
  • 打赏
  • 举报
回复
看来总归是跳不过一个循环然后Datatable。Comute?
zgke 2009-02-19
  • 打赏
  • 举报
回复
object _ValueCountA = _Table.Compute("Sum(数字列名)","名字='A'");
object _ValueCountB = _Table.Compute("Sum(数字列名)", "名字='B'");

你可以这样用TABLE
sprc_lcl 2009-02-19
  • 打赏
  • 举报
回复
object objSum = dt.Compute("sum(字段3)", "字段2='a'");
前提是知道a这个值,所以还是得循环
DataView dv = dt.DefaultView;
dv.Sort = "字段2 asc";
string tempstr = "";
for(int i=0;i<dv.Count;i++)
{
if(tempstr != dv[i]["字段2"].ToString())
{
tempstr = dv[i]["字段2"].ToString();
//保存tempstr和dt.Compute("sum(字段3)", "字段2='"+tempstr+"'");
}
}
wwwiii520 2009-02-19
  • 打赏
  • 举报
回复
北京的雾霾天 2009-02-19
  • 打赏
  • 举报
回复
DataTable本身没有这样的功能,你需要自己做个循环处理数据。可以把结果放到别一个DataTable中。
wwwiii520 2009-02-19
  • 打赏
  • 举报
回复
在內存表DataTable中處理啊...
SQL語句都會寫的吧
fanxin1126 2009-02-19
  • 打赏
  • 举报
回复
SQL 的话前提是你从数据库查出来了,要不就用循环加!
fanxin1126 2009-02-19
  • 打赏
  • 举报
回复
SQL SELECT sUM(A那一列的名字) GROUP BY A那一列的名字 HAVING COUNT(A那一列的名字)>1
【资源说明】 基于Flask框架实现的IP地址管理平台系统源码+项目使用说明.zip 使用 Flask 框架组装的IP地址管理平台 前端:Bootstrap、Datatable、sweetalert…… 后端:Flask、APScheduler…… 数据库:SQLite ### 内置功能 - 首页:*没有首页的首页* - IP地址表:显示IP地址使用情况,可在页面进行增、删、改、导出到Excel表格 - 分组:按分组 + 网段显示目录树,右侧显示所选择查看网段的饼图,方块表和网段IP地址表 - 设置:查看定时任务执行情况和轮询参数 - 数据库:404 - 关于:一段话 项目结构 ``` | app.py # 没什么用装个样子 | manage.py # 应用入口文件 | README.md | requirements.txt  # 安装库 | +---app | | commands.py # 自定义插入组命令 | | config.py  # 配置文件 | | models.py  # 数据模型类代码 | | task.py  # 定时任务代码 | | test_data.py  # 导入测试数据 | | __init__.py | | | +---admin | | | lib.py  # 可复用功能函数代码 | | | views.py  # 视图函数代码 | | | __init__.py | | | +---static  # CSS JS 插件 | | | +---templates # 被渲染的html模板 | | | 404.html # 404 页面 | | | | | \---admin | | about.html | | base.html | | index.html | | ipgroup.html | | ipshow.html | | settings.html | | +---instance # flask db 命令自动生成的文件夹 | db.sqlite3 # sqlite3数据库文件 | +---migrations # flask db 命令自动生成的文件夹 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!

111,112

社区成员

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

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

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