动态计算&在DataTable列中添加值 - ASP.Net C#

时间:2015-07-25 10:50:14

标签: c# asp.net datatable

我有一个DataTable,它从DB绑定了Columns:Id,Date,Credit,Debit。

我想添加新的列“Balance”,并且应该通过公式为EACH Row计算其值; [上一行余额] - [点数] + [借记]

我做过这样的事情:

dt; //Filled & having columns ID, Date, Debit, Credit
dt.Columns.Add("Balance");

foreach(DataRow row in dt.Rows)
{
    //What should I do here to apply above formula
}

1 个答案:

答案 0 :(得分:1)

我想您希望第一行的公式为Credit + Debit,因为没有上一行并且您为任何其他行调整了您编写的公式。如果是这样,这将是安全的方法:

for (int i = 0; i < dt.Rows.Count; i++)
{
    DataRow row = dt.Rows[i];

    decimal credit = 0, debit = 0, previousBalance = 0;
    decimal.TryParse(row["Credit"].ToString(), out credit);
    decimal.TryParse(row["Debit"].ToString(), out debit);

    if (i > 0)
        decimal.TryParse(dt.Rows[i-1]["Balance"].ToString(), out previousBalance);

    row["Balance"] = i == 0 ? credit + debit : previousBalance - credit + debit;
}