web-dev-qa-db-fra.com

Comment calculer la somme de la colonne datatable dans asp.net?

J'ai un DataTable qui a 5 colonnes:

  • ID
  • Prénom
  • Numéro de compte
  • Branche 
  • Montant

Le DataTable contient 5 lignes.

Comment puis-je afficher la somme de la colonne Montant dans un contrôle d'étiquette en tant que "Total"

50
thevan

Pour calculer la somme d'une colonne dans un DataTable, utilisez la méthode DataTable.Compute .

Exemple d'utilisation de l'article MSDN lié:

DataTable table = dataSet.Tables["YourTableName"];

// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Amount)", string.Empty);

Affichez le résultat dans votre libellé Montant total comme suit:

lblTotalAmount.Text = sumObject.ToString();
113
Jay Riggs
 this.LabelControl.Text = datatable.AsEnumerable()
    .Sum(x => x.Field<int>("Amount"))
    .ToString();

Si vous voulez filtrer les résultats:

 this.LabelControl.Text = datatable.AsEnumerable()
    .Where(y => y.Field<string>("SomeCol") != "foo")
    .Sum(x => x.Field<int>("MyColumn") )
    .ToString();
29
Thomas

Tu peux faire comme ..

DataRow[] dr = dtbl.Select("SUM(Amount)");
txtTotalAmount.Text = Convert.ToString(dr[0]);
15
Muhammad Akhtar

Si vous avez un ADO.Net DataTable vous pouvez faire

int sum = 0;
foreach(DataRow dr in dataTable.Rows)
{
   sum += Convert.ToInt32(dr["Amount"]);
}

Si vous souhaitez interroger la table de base de données, vous pouvez utiliser

Select Sum(Amount) From DataTable
8
FIre Panda
  public decimal Total()
    {
      decimal decTotal=(datagridview1.DataSource as DataTable).Compute("Sum(FieldName)","");
      return decTotal;
    }
5
Buntha Khin

Calculer la somme de la colonne dans Datatable, fonctionne à 100%

lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "").ToString();

si vous voulez avoir des conditions, utilisez-le comme ça

   lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "srno=1 or srno in(1,2)").ToString();
4
Arun Prasad E S

Vous pouvez utiliser Linq par nom de groupe 

  var allEntries = from r in dt.AsEnumerable()
                            select r["Amount"];

en utilisant l'espace de noms using System.Linq;

Vous pouvez trouver le total de l'échantillon, le sous-total, le total général dans datatable en utilisant c # à Myblog

2
Kutty Rajesh Valangai

Je pense que cela résout

using System.Linq;


(datagridview1.DataSource as DataTable).AsEnumerable().Sum(c => c.Field<double>("valor"))
0

Essaye ça 

int sum = 0;
foreach (DataRow dr in dt.Rows)
{
     dynamic value = dr[index].ToString();
     if (!string.IsNullOrEmpty(value))
     { 
         sum += Convert.ToInt32(value);
     }
}
0