محاسبه مجموع ستونهای DataTable با استفاده از #C و VB.Net
یکشنبه 6 اردیبهشت 1394در این مقاله نحوه محاسبه مجموع ستونهای DataTable در #C و VB.Net را شرح خواهیم داد
در این نمونه توضیحات و مثالی که ذکر خواهد شد شامل دو بخش است :
1 : تابع محاسبه DataTable
2 : دستورات LINQ
Data Table :
ایتدا جدولی شامل لیست حقوق کارمندان را ایجاد میکنیم .جدول ایجاد شده برای محاسبه مجموع دستمزد کارمندان به کار میرود , محاسبه ستونهای این جدول با استفاده از دستورات LINQ انجام می پذیرد .
کد #C :
DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[3] { new DataColumn("EmployeeId", typeof(int)), new DataColumn("Name", typeof(string)), new DataColumn("Salary", typeof(int)) }); dt.Rows.Add(1, "John Hammond", 45000); dt.Rows.Add(2, "Mudassar Khan", 32000); dt.Rows.Add(3, "Robert Schidner", 19000); dt.Rows.Add(3, "Suzanne Mathews", 18500);
کد VB.Net :
Dim dt As New DataTable() dt.Columns.AddRange(New DataColumn(2) {New DataColumn("EmployeeId", GetType(Integer)), _ New DataColumn("Name", GetType(String)), _ New DataColumn("Salary", GetType(Integer))}) dt.Rows.Add(1, "John Hammond", 45000) dt.Rows.Add(2, "Mudassar Khan", 32000) dt.Rows.Add(3, "Robert Schidner", 19000) dt.Rows.Add(3, "Suzanne Mathews", 18500)
محاسبه مجموع رکوردهای یک ستون در جدول :
تابع محاسبه مجموع رکوردهای ستون دو پارامتر دریافت میکند :
1 - Expression : یک تابع برای کار با مجموعه ای از مقادیر میباشد (مانند SUM , COUNT , MIN , MAX , AVG)
2 - Filter : برای قرار دادن فیلتر بر روی ردیف های موجود میباشد , مانند قرار دادن شرط با دستور Where
در ادامه یک متغیر با نام sum تعریف میکنیم :
#C :
int sum = Convert.ToInt32(dt.Compute("SUM(Salary)", string.Empty));
VB.Net :
Dim sum As Integer = Convert.ToInt32(dt.Compute("SUM(Salary)", String.Empty))
محاسبه مجموع در جدول با استفاده از دستورات LINQ :
LINQ به ما اجازه میدهد به راحتی مجموع ردیفها را بر اساس شرطی خاص محاسبه کند
در ادامه دستورات محاسبه مجموع را با استفاده از دستور LINQ مشاهده می کنید :
#C :
int sum = dt.AsEnumerable().Sum(row => row.Field<int>("Salary"));
VB.Net
Dim sum As Integer = dt.AsEnumerable().Sum(Function(row) row.Field(Of Integer)("Salary"))
دستور LINQ برای محاسبه چند سطر خاص :
#C :
int sum = dt.AsEnumerable().Where(row => row.Field<int>("EmployeeId") > 2).Sum(row => row.Field<int>("Salary"));
VB.Net :
Dim sum As Integer = dt.AsEnumerable().Where(Function(row) row.Field(Of Integer)("EmployeeId") > 2).Sum(Function(row) row.Field(Of Integer)("Salary"))
- C#.net
- 6k بازدید
- 2 تشکر