69 votes

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

J'ai un DataTable qui a 5 colonnes :

  • identifiant
  • 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 « Montant total » ?

143voto

Jay Riggs Points 30783

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 étiquette de montant total comme suit :

 lblTotalAmount.Text = sumObject.ToString();

38voto

Thomas Points 42973
 this.LabelControl.Text = datatable.AsEnumerable()
    .Sum(x => x.Field<int>("Amount"))
    .ToString();

Si vous souhaitez filtrer les résultats :

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

15voto

Muhammad Akhtar Points 32101

Vous pouvez faire comme..

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

8voto

Abdul Muqtadir Points 3887

Si vous avez un DataTable ADO.Net, vous pouvez le faire

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

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

 Select Sum(Amount) From DataTable

5voto

Arun Prasad E S Points 3375

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 ceci

    lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "srno=1 or srno in(1,2)").ToString();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X