2012-11-30 5 views
0

Im пытается получить значения из каждого столбца в одной строке, чтобы равняться сумме. Вот код, который им используется для достижения этого в C# asp.netПолучить общее количество строк данных 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(); 

     } 

Любые идеи? Я пробовал вызывать каждый столбец и добавлять их, но, похоже, не работает.

ответ

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")); 

Edit: кажется, если вы хотите суммировать числовые значения каждой строки в «общую» -колонку. Затем вы можете использовать колонку-выражение:

dt.Columns.Add("Total", typeof(int), "SNS + TT + Music"); 
+0

Спасибо за это :) – BlahWoo

Смежные вопросы