0

単一行の各列から合計に等しい値を取得しようとしています。これは、c#asp.netでこれを実現するために使用しているコードです。

DataTable dt = ds.Tables.Add("InspireTable");
        string pass = (String)Session["name"];
        if (pass.Equals("High"))
        {
            dt.Columns.Add("Inspire", typeof(string));
            dt.Columns.Add("SNS", typeof(int));
            dt.Columns.Add("TT", typeof(int));
            dt.Columns.Add("Music", typeof(int));
            dt.Columns.Add("Total", typeof(string));


            DataRow row = dt.NewRow();
            row["Inspire"] = "Score";
            row["SNS"] = 10;
            row["TT"] = 10;
            row["Music"] = 0;

            dt.Rows.Add(row);
            Chart1.DataSource = dt;
            this.GridView1.Visible = true;
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }

何か案は?各列を呼び出して追加しようとしましたが、うまくいかないようです。

4

1 に答える 1

0

DataTable.Computeたとえば、古い方法では次のようになります。

int snsTotal = (int) dt.Compute("SUM(SNS)", null); // the second argument is the filter

「モダンな」Linqアプローチは次のとおりです。

int snsTotal = dt.AsEnumerable().Sum(r => r.Field<int>("SNS"));

編集:各行の数値を「合計」列に合計したいようです。次に、列式を使用できます。

dt.Columns.Add("Total", typeof(int), "SNS + TT + Music");
于 2012-11-30T14:33:36.277 に答える