我现在有一个DataTable
姓名 金额 金额总计
张 30 30
王 30 60
李 30 90
赵 30 120
钱 30 150
金额总计都为自身与排在自己前面的数据的金额相加!
要完成这样的效果!该怎么做!!
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; }
金额统计就是加上去的!哥哥!!
@田麦成: 回答已修改
@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;
}
}