У меня есть DataTable, который имеет 5 столбцов:
- ID
- Имя
- Номер учетной записи
- Филиал
- Сумма
В DataTable содержится 5 строк.
Как я могу показать сумму столбца суммы в элементе управления метками как "общая сумма"?
У меня есть DataTable, который имеет 5 столбцов:
В DataTable содержится 5 строк.
Как я могу показать сумму столбца суммы в элементе управления метками как "общая сумма"?
Чтобы вычислить сумму столбца в DataTable, используйте метод DataTable.Compute.
Пример использования из связанной статьи MSDN:
DataTable table;
table = dataSet.Tables["YourTableName"];
// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Amount)", "");
Отобразите результат в общей сумме меток следующим образом:
lblTotalAmount.Text = sumObject.ToString();
this.LabelControl.Text = datatable.AsEnumerable()
.Sum( x => x.Field<int>( "Amount" ) )
.ToString();
Если вы хотите отфильтровать результаты:
this.LabelControl.Text = datatable.AsEnumerable()
.Where( y => y.Field<string>( "SomeCol" ) != "foo" )
.Sum( x => x.Field<int>( "MyColumn" ) )
.ToString();
Вы можете сделать как..
DataRow[] dr = dtbl.Select("SUM(Amount)");
txtTotalAmount.Text = Convert.ToString(dr[0]);
Если у вас есть ADO.Net DataTable, вы можете сделать
int sum = 0;
foreach(DataRow dr in dataTable.Rows)
{
sum += Convert.ToInt32(dr["Amount"]);
}
Если вы хотите запросить таблицу базы данных, вы можете использовать
Select Sum(Amount) From DataTable
public decimal Total()
{
decimal decTotal=(datagridview1.DataSource as DataTable).Compute("Sum(FieldName)","");
return decTotal;
}
Вычислить сумму столбца в Datatable, Works 100%
lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "").ToString();
если вы хотите иметь какие-либо условия, используйте его так
lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "srno=1 or srno in(1,2)").ToString();
Вы можете использовать Linq по группировке имен
var allEntries = from r in dt.AsEnumerable()
select r["Amount"];
используя пространство имен using System.Linq;
Вы можете найти общий итог, промежуточный итог, общий итог в datatable, используя С# в Myblog
Попробуйте это
int sum = 0;
foreach (DataRow dr in dt.Rows)
{
dynamic value = dr[index].ToString();
if (!string.IsNullOrEmpty(value))
{
sum += Convert.ToInt32(value);
}
}
Я думаю, что это решает
using System.Linq;
(datagridview1.DataSource as DataTable).AsEnumerable().Sum(c => c.Field<double>("valor"))