首页 新闻 会员 周边 捐助

内存中DataTable列计算

0
悬赏园豆:5 [已解决问题] 解决于 2012-05-16 17:50

我现在有一个DataTable

姓名     金额           金额总计

张         30              30

王         30              60

李         30              90

赵         30              120

钱         30              150

 

金额总计都为自身与排在自己前面的数据的金额相加!

 

要完成这样的效果!该怎么做!!

需要格局的主页 需要格局 | 老鸟四级 | 园豆:2145
提问于:2012-05-16 17:24
< >
分享
最佳答案
0

Demo:

//这一部分是你内存中的DataTable
DataTable dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("金额",typeof(int));
dt.Rows.Add("", 30);
dt.Rows.Add("", 30);
dt.Rows.Add("", 30);
dt.Rows.Add("", 30);
dt.Rows.Add("", 30);


//添加统计列
dt.Columns.Add("金额总计", typeof(int));
var sum = 0;
foreach (DataRow row in dt.Rows)
{
    sum += Int32.Parse(row["金额"].ToString());
    row["金额总计"] = sum;
}
收获园豆:5
artwl | 专家六级 |园豆:16736 | 2012-05-16 17:32

金额统计就是加上去的!哥哥!!

需要格局 | 园豆:2145 (老鸟四级) | 2012-05-16 17:34

@田麦成: 回答已修改

artwl | 园豆:16736 (专家六级) | 2012-05-16 17:41

@artwl: 

static void Main(string[] args)
{
DataTable dt = new DataTable();

DataColumn dc1 = new DataColumn("名字", typeof(string));

dt.Columns.Add(dc1);

DataColumn dc2= new DataColumn("金额", typeof(decimal));
dt.Columns.Add(dc2);

DataRow dr = dt.NewRow();

dr["名字"] = "张";
dr["金额"] = "300";
dt.Rows.Add(dr);

 

DataRow dr3 = dt.NewRow();
dr3["名字"] = "王";
dr3["金额"] = "300";
dt.Rows.Add(dr3);


DataColumn dc = new DataColumn("本次余额", typeof(decimal));

dt.Columns.Add(dc);


for (int i = 0; i < dt.Rows.Count; i++)
{

decimal CalculatorAmount = 0;
for (int j = 0; j <= i; j++)
{
CalculatorAmount += Convert.ToDecimal(dt.Rows[j]["金额"]);

}

dt.Rows[i]["本次余额"] = CalculatorAmount;


}
}

需要格局 | 园豆:2145 (老鸟四级) | 2012-05-16 17:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册