DataTable汇总问题。十万火急!!!急急急,当天有结果当天给分!

richie8398 2008-07-03 09:39:06
现在需要绑定一个gridview,其中,datatable起初得数据如下:
productid bingrade quantity
111 a 20
111 a 10
111 b 30
222 c 50
222 c 40


现在相对datatable进行列汇总,其中,productid和bingrade必须同时相同时,才能对quantity进行累加。显示效果如下:

productid bingrade quantity
111 a 30
111 b 30
222 c 90


请高手帮我看看,今天公司等着要呢!Thank you!
...全文
170 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxoo2007 2008-07-03
  • 打赏
  • 举报
回复
后台的话用group语法.

前台做这个么,试试按productid,bingrade排序, 遍历并将数据插入到另一个DataTable去, 当遇到productid, bingrade相同的时候,累加而不插入.
suyiming 2008-07-03
  • 打赏
  • 举报
回复
绑定之后就不能再进行处理了,你应该在绑定之前进行处理.
xiaoqhuang 2008-07-03
  • 打赏
  • 举报
回复

DataTable dt = new DataTable();
dt.Columns.Add("productid");
dt.Columns.Add("bingrade");
dt.Columns.Add("quantity");
dt.Rows.Add(new object[] { "111", "a", "20" });
dt.Rows.Add(new object[] { "111", "a", "10" });
dt.Rows.Add(new object[] { "111", "b", "30" });
dt.Rows.Add(new object[] { "222", "c", "50" });
dt.Rows.Add(new object[] { "222", "c", "40" });
DataTable groupTable = dt.Clone();
groupTable.PrimaryKey = new DataColumn[]{groupTable.Columns[0],groupTable.Columns[1]};
foreach (DataRow dataRow in dt.Rows)
{
DataRow groupRow = groupTable.Rows.Find(new object[] { dataRow["productid"], dataRow["bingrade"] });
if (groupRow == null)
{
groupTable.Rows.Add(dataRow.ItemArray);
}
else
{
groupRow["quantity"] = Convert.ToInt32(groupRow["quantity"]) + Convert.ToInt32(dataRow["quantity"]);
}
}
GridView1.DataSource = groupTable;
GridView1.DataBind();
peterb 2008-07-03
  • 打赏
  • 举报
回复
为什么不放到数据库层汇总 一个sql语句就可以 group by productid, bingrade
silentwins 2008-07-03
  • 打赏
  • 举报
回复
楼上正解~~
不过觉得重新在数据库搜索汇总一次来获得DataTable还来得简单直接~~
zhnzzy 2008-07-03
  • 打赏
  • 举报
回复

重新选取datatable内容

select productid ,bingrade,quantity from tb group by productid , bingrade
homesos 2008-07-03
  • 打赏
  • 举报
回复
使用SQL语句进行分组查询
xiaoqhuang 2008-07-03
  • 打赏
  • 举报
回复
遍历
内容概要:本文档聚焦于“基于超局部模型的无模型预测电流控制(MFPCC)结合自抗扰ESO观测器改进模型预测控制”的Simulink仿真研究,属于电力电子与电机控制领域的高阶科研复现项目。研究采用无模型预测控制策略,引入超局部模型以简化系统建模过程,避免对精确数学模型的依赖,并融合自抗扰控制中的扩张状态观测器(ESO),实现对系统内部动态与外部干扰的实时估计与补偿,从而显著提升电流环控制的动态响应速度、稳态精度及系统鲁棒性。文档不仅详述了该复合控制策略的设计原理与仿真实现,还配套提供了完整的Matlab/Simulink代码与模型,并列举了涵盖模型预测控制、滑模控制、PI/FCS-MPC对比、永磁同步电机控制、四旋翼轨迹跟踪、电池均衡、微电网能量管理等方向的丰富科研仿真资源,服务于学术研究与工程实践。; 适合人群:具备自动控制理论、电机控制原理、电力电子技术及Matlab/Simulink仿真基础的研究生、高校科研人员,以及从事高性能电机驱动、新能源发电、电力变换系统开发的工程师。; 使用场景及目标:① 复现并深入理解MFPCC与ESO相结合的先进控制算法在电机电流控制中的集成应用;② 对比析无模型预测控制与传统依赖精确模型的控制方法(如FCS-MPC)在抗干扰能力和模型误差容忍度方面的性能差异;③ 掌握ESO在扰动观测与前馈补偿中的关键技术,探究其对系统鲁棒性的提升机制;④ 作为毕业设计、高水平学术论文复现、科研项目预研或工业级控制器开发的理论与实践参考。; 阅读建议:建议读者结合所提供的Simulink仿真模型与代码进行动手实践,重点剖析控制器架构设计、ESO参数整定方法、代价函数构建及仿真结果的动态响应与抗扰性能对比析,同时可参考文档中列出的相关课题资源,横向拓展对现代先进控制理论体系的认知。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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