DataTable加工后添加行列,输出求和,百分比的问题请教!

问题描述

解决方案

解决方案二:
【附上】部分代码:DataTableoldDataTable=newDataTable();oldDataTable.Columns.Add("商品");oldDataTable.Columns.Add("销售成本");oldDataTable.Columns.Add("销售利润");DataRowdr=oldDataTable.NewRow();for(inti=0;i<6;i++){dr=oldDataTable.NewRow();dr["商品"]="A";dr["销售成本"]=100+i;dr["销售利润"]=1000+i;oldDataTable.Rows.Add(dr);}

解决方案三:
oldDataTable.columns.insert添加就列了,然后对每一行进行处理啊最后在把数据进行处理,得到合计信息,添加行就可以了啊
解决方案四:
引用2楼wpfLove的回复:

oldDataTable.columns.insert添加就列了,然后对每一行进行处理啊最后在把数据进行处理,得到合计信息,添加行就可以了啊

oldDataTable.columns.有insert方法?
解决方案五:
该回复于2014-01-11 00:12:25被版主删除
解决方案六:
引用楼主xzwcn的回复:privateDataTableCalcOldTable(DataTabletable){DataTablenewDataTable=table.Clone();DataColumncol=newDataColumn("百分比1");//这里字段不能同名col.Caption="百分比";table.Columns.Add(col);col=newDataColumn("百分比2");//这里字段不能同名col.Caption="百分比";table.Columns.Add(col);inttotal1=(int)table.Compute("Sum(销售成本)","");inttotal2=(int)table.Compute("Sum(销售利润)","");for(inti=0;i<table.Rows.Count;i++){DataRowdr=newDataTable.NewRow();dr["商品"]=table.Rows[i]["商品"];dr["销售成本"]=table.Rows[i]["销售成本"];dr["销售利润"]=table.Rows[i]["销售利润"];dr["百分比1"]=(float.Parse(table.Rows[i]["销售成本"].ToString())/total1).ToString("D2%");dr["百分比2"]=(float.Parse(table.Rows[i]["销售利润"].ToString())/total2).ToString("D2%");newDataTable.Rows.Add(dr);}returnnewDataTable;}
解决方案七:
引用3楼xzwcn的回复:

Quote: 引用2楼wpfLove的回复:
oldDataTable.columns.insert添加就列了,然后对每一行进行处理啊最后在把数据进行处理,得到合计信息,添加行就可以了啊

oldDataTable.columns.有insert方法?

竟然没有insert方法,那这样,如果你是要绑定到程序中,那楼上的方法即可以,但是如果要严格按照格式来输出到excel等地方,那就重新new一个DataTable,按照顺序添加列,再循环添加行,就可以了。这样对于整个DataTable的整体输出,比较容易。看你具体的场景了,大部分情况,楼上的都可以解决。
解决方案八:
引用5楼wyd1520的回复:

Quote: 引用楼主xzwcn的回复:privateDataTableCalcOldTable(DataTabletable){DataTablenewDataTable=table.Clone();DataColumncol=newDataColumn("百分比1");//这里字段不能同名col.Caption="百分比";table.Columns.Add(col);col=newDataColumn("百分比2");//这里字段不能同名col.Caption="百分比";table.Columns.Add(col);inttotal1=(int)table.Compute("Sum(销售成本)","");inttotal2=(int)table.Compute("Sum(销售利润)","");for(inti=0;i<table.Rows.Count;i++){DataRowdr=newDataTable.NewRow();dr["商品"]=table.Rows[i]["商品"];dr["销售成本"]=table.Rows[i]["销售成本"];dr["销售利润"]=table.Rows[i]["销售利润"];dr["百分比1"]=(float.Parse(table.Rows[i]["销售成本"].ToString())/total1).ToString("D2%");dr["百分比2"]=(float.Parse(table.Rows[i]["销售利润"].ToString())/total2).ToString("D2%");newDataTable.Rows.Add(dr);}returnnewDataTable;}

ServerErrorin'/'Application.--------------------------------------------------------------------------------InvalidusageofaggregatefunctionSum()andType:String.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerrorandwhereitoriginatedinthecode.ExceptionDetails:System.Data.DataException:InvalidusageofaggregatefunctionSum()andType:String.SourceError:Line85:table.Columns.Add(col);Line86:Line87:inttotal1=(int)table.Compute("Sum(销售成本)","");Line88:inttotal2=(int)table.Compute("Sum(销售利润)","");Line89:
解决方案九:
引用6楼wpfLove的回复:

Quote: 引用3楼xzwcn的回复:
Quote: 引用2楼wpfLove的回复:
oldDataTable.columns.insert添加就列了,然后对每一行进行处理啊最后在把数据进行处理,得到合计信息,添加行就可以了啊

oldDataTable.columns.有insert方法?

竟然没有insert方法,那这样,如果你是要绑定到程序中,那楼上的方法即可以,但是如果要严格按照格式来输出到excel等地方,那就重新new一个DataTable,按照顺序添加列,再循环添加行,就可以了。这样对于整个DataTable的整体输出,比较容易。看你具体的场景了,大部分情况,楼上的都可以解决。

不行哦。。。你看下7楼的问题。
解决方案十:
这种只是稍微复杂一点的学校作业,还是自己做吧。
解决方案十一:
引用9楼sp1234的回复:

这种只是稍微复杂一点的学校作业,还是自己做吧。

哦哦,有空我再搞搞。但这不是学校作业...是实际应用的。只是我把数据PS了。。另见:http://bbs.csdn.net/topics/390690934

时间: 2024-08-28 23:15:53

DataTable加工后添加行列,输出求和,百分比的问题请教!的相关文章

ios-iOS 获取通讯录后,可打印 输出结果只有一个联系人信息.

问题描述 iOS 获取通讯录后,可打印 输出结果只有一个联系人信息. 打印self.allPerson可以打印出所有联系人信息, 可是打印self.allPeople时,什么结果也没有输出.????? #import "AddressBook.h" #import "pinyin.h"//将汉字转换成英文 #import "Person.h"//将联系人信息存储成一个一个的person //存储通讯录的类 @interface AddressBo

为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能(二)

上一篇<为ASP.NET MVC RC分离Controllers-Views项目后添加"脚手架"功能(一)> 中讲到如何 分离Controllers和Views项目,并且为Controllers项目添加MVC RC的"脚手架",可惜"脚手架"的功 能保留的过于完整,以至于自动创建和察看View页面都会在当前项目中进行,除非你心甘情愿每次创建完 成后手动将文件转移到Views(Web)项目,否则这个"脚手架"的意义几

ios-动态标签后添加图片

问题描述 动态标签后添加图片 应用在标签后添加图片,标签是动态的. 实现代码: dropdownlabel = [[UILabel alloc]init]; [dropdownlabel setFrame:CGRectMake(90,8,180, 30)]; [dropdownlabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:20]]; dropdownlabel.textAlignment = UITextAlignm

c-为什么数组越界后仍然能够输出hello?

问题描述 为什么数组越界后仍然能够输出hello? #include<stdio.h> void hello(void) { fprintf(stderr,"hello!n"); } void fun(void) { void *buf[10]; static int i; for(i=0;i<100;i++) { buf[i]=hello; } } int main(void) { int buf[1000]; fun(); return 0; } 解决方案 C++

css-js 在指定文字后添加标签

问题描述 js 在指定文字后添加标签 比如网页内容是: xxxxxxxxxxxxx xxxxxxxxxxxx #xxxxxxxxxx# xxxxxxxx 我怎么用js在#号后面加一个按钮的标签. 解决方案 换个思路,就是在把每一个#替换成#和一个按钮(这个按钮也就是一段html代码) 那么,就完全可以按照正则表达式去匹配#,然后用#和按钮的html代码替换就ok了 化繁为简,望楼主采纳~ 解决方案二: js动态添加标签 解决方案三: createElement append 解决方案四: 用字符

phpexcel导出excel文件输出求和问题

问题描述 phpexcel导出excel文件输出求和问题 phpexce导出excel文件用求和公式->setCellValue('E2', "=SUM(D4:D100)")输出到E2单元格,我想把这个求和结果变成数值,非公式的,怎么改

visualstudio2015安装-VS2015安装后添加vb项目出现问题

问题描述 VS2015安装后添加vb项目出现问题 visual studio2015安装后添加现有的项目,提示如下信息 求各位高手指点,在线等,急急急!!! 解决方案 如果你只是添加项目,要看看有没有SLN这样的后缀文件,这是项目启动的保证,你可以新建一个项目,就能发现,有些项目不想让你运行,这文件就没了

pthread_detach-pthread_create后子线程输出了两次

问题描述 pthread_create后子线程输出了两次 #include #include #include #include #include void *start_handler(void *); int main(void) { pthread_t tid; int err; if(err = pthread_create(&tid, NULL, start_handler, NULL)) { fprintf(stderr, "Create thread: %sn",

通讯录-如何在此程序中添加上输出全部数据的函数

问题描述 如何在此程序中添加上输出全部数据的函数 #include "stdio.h" #include "stdlib.h" #include "string.h" /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; char phone[20]; char address[20]; char QQ[20]; }; /*声明学生数组及学生数量*/ struct Student stu