CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

急需要将datatable增加一行,内容为每一列的和,如何实现

楼主lvw8000(lvw)2006-03-21 13:53:25 在 .NET技术 / ASP.NET 提问

如题 问题点数:100、回复次数:12Top

1 楼Tom_Real()回复于 2006-03-21 14:01:44 得分 48

 
  1、DataRow   dr   =   datatable.NewRow();  
  2、循环加,或用datatable.Compute方法,附值到dr对应列。  
  3、datatable.Rows.Add(dr);Top

2 楼pwqzc(吴旗娃徒也~~老鼠粮仓之路)回复于 2006-03-21 14:12:59 得分 2

楼上的对Top

3 楼pyuan(菜鸟)回复于 2006-03-21 14:18:10 得分 20

DataTable   dt   =   new   DataTable();  
                  DataRow   dr   =   dt.NewRow();  
                  int   sum;  
                  for   (int   j   =   0;   j   <   dt.Columns.Count;   j++)  
                  {  
                          sum   =   0;  
                          for   (int   i   =   0;   i   <   dt.Rows.Count;   i++)  
                          {  
                                  sum   +=   Convert.ToInt32(dt.Rows[i][j]);  
                          }  
                          dr[j]   =   sum;  
                  }  
                  dt.Rows.Add(dr);Top

4 楼lvw8000(lvw)回复于 2006-03-21 14:27:55 得分 0

谢谢,可以给出具体的代码吗?Top

5 楼Tom_Real()回复于 2006-03-21 14:29:40 得分 0

还可以用sql解决,不过可能需要比较一下哪种方法效率更高:  
  select   zd1,zd2,zd3,zd4   from   tablename  
  union    
  select   sum(zd1),sum(zd2),sum(zd3),sum(zd4)   from   tablename  
  另外,如果语句过长,可能会报错Top

6 楼net_lover(【孟子E章】)回复于 2006-03-21 14:32:01 得分 30

如果是显示,可以  
  http://dotnet.aspx.cc/ShowDetail.aspx?id=175C1EA1-A261-45D3-B5AC-94F6CACCDDEFTop

7 楼Tom_Real()回复于 2006-03-21 14:35:33 得分 0

循环的代码pyuan(菜鸟)   已经写出来了,可能转换时需要判断一下dt.Rows[i][j]是否为空;  
  Compute方法也很简单:  
  DataTable   dt=....;  
   
   
  DataRow   dr   =   dt.NewRow();  
                  for   (int   j   =   0;   j   <   dt.Columns.Count;   j++)  
                  {  
                          dr[j]   =   dt.Compute("sum("+dt.Columns[j].ColumnName+")");  
                  }  
                  dt.Rows.Add(dr);  
  大概就是这样,自己研究一下。  
  我的.NET环境出问题了,郁闷!!Top

8 楼lvw8000(lvw)回复于 2006-03-21 14:36:13 得分 0

非常感谢大家支持,我这是一个灵活的记录集,我想把DataTable写入临时表中,再在临时表中做sum和其它的操作,这样做有没有什么问题???Top

9 楼Tom_Real()回复于 2006-03-21 14:51:58 得分 0

没问题,如果在计算后还有操作,例如加行、删除行,建议把总计行插入到dt的第一行,便于操作:  
  //dt.Rows.Add(dr);  
  dt.Rows.InsertAt(0,dr);  
  另外,注意保存临时表Top

10 楼lvw8000(lvw)回复于 2006-03-21 15:13:49 得分 0

DataRow   dr   =   dt.NewRow();  
                  for   (int   j   =   0;   j   <   dt.Columns.Count;   j++)  
                  {  
                          dr[j]   =   dt.Compute("sum("+dt.Columns[j].ColumnName+")");  
                  }  
                  dt.Rows.Add(dr);  
  运行时出错,提示:C:\Inetpub\wwwroot\wilcomReport\Report\ReportSearchControl.ascx.cs(293):   不能在此范围内声明名为“dr”的局部变量,因为这样会使“dr”具有不同的含义,而它已经用于“子级”范围以表示其他内容  
   
  请问应该怎么定义,初学.net,向大家请教,谢谢  
  Top

11 楼Tom_Real()回复于 2006-03-21 15:21:35 得分 0

你一定在外面已经定义了一个dr了,如果是常用的变量,象i,dr,dt等一般就定义在方法开始就可以了,如果是不常用的,定义后加个注释,以后修改比较方便Top

12 楼lvw8000(lvw)回复于 2006-03-21 16:07:38 得分 0

谢谢大家,搞定,结贴了Top

相关问题

  • 如何取得datatable中某一行某一列中的内容?
  • 如何求每一行DataTable中的行相加的值,每一列列相加的值。
  • 如何定位DataTable中的每一行
  • DataTable删除一行怎么解决?
  • 怎样删除DataTable中的一行?
  • datatable只有一行数据,如何把某列的值取出来绑定到文本框?
  • 请问怎么才能实现取得一个DataTable中某一行某一列对应的值?
  • 急需office2000序列号(70fen)
  • 急需列拷贝函数!!
  • 急需:win2000 pro序列号

关键词

  • datatable
  • dr
  • newrow
  • datarow
  • dt

得分解答快速导航

  • 帖主:lvw8000
  • Tom_Real
  • pwqzc
  • pyuan
  • net_lover

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo