Bài viết mới

[C#] Hướng dẫn tính toán (sum, average, count, min, max) trên datatable sử dụng DataTable Compute function và Linq

[C#] Hướng dẫn tính toán (sum, average, count, min, max) trên datatable sử dụng DataTable Compute function và Linq
Đăng bởi: Thảo meo - Lượt xem: 2203 07:48:06, 10/10/2017CSHARP   In bài viết

Bài viết hôm nay, mình sẽ hướng dẫn các bạn tính toán trên DataTable sử dụng Compute Function và Linq trong C# và VB.NET

Ví dụ: Thực hiện tính lương nhân viên trong DataTable như Demo bên dưới

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)

Bây giờ, mình sẽ thực hiện phép tính trên datatable trên.

Cách 1: Sử dụng Compute function

Cú pháp: DataTable.Compute(hành động, điều kiện)

Hành động: Compute cung cấp cho chúng ta các phương thức tính toán sau: SUM, COUNT, MIN, MAX and AVG.

Điều kiện: Chúng ta sẽ tính toán theo điều kiện.

Câu ví dụ: Tính lương không có điều kiện

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

Tính lương có điều kiện EmployeeID >2

C#

int sum = Convert.ToInt32(dt.Compute("SUM(Salary)", "EmployeeId > 2"));

VB.NET

Dim sum = Convert.ToInt32(dt.Compute("SUM(Salary)", "EmployeeId > 2"))

Cách 2: Sử dụng LINQ

Thực hiện tính tổng lương Employee không có điều kiện

C#

int sum = dt.AsEnumerable().Sum(row => row.Field("Salary"));

VB.NET

Dim sum As Integer = dt.AsEnumerable().Sum(Function(row) row.Field(Of Integer)("Salary")

- Thực hiện tính lương với điều kiện EmployeeID >2

C#

int sum = dt.AsEnumerable().Where(row => row.Field("EmployeeId") > 2).Sum(row => row.Field("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"))

HAVE FUN :)

Tags: datasetdatatablelinq

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn tính toán (sum, average, count, min, max) trên datatable sử dụng DataTable Compute function và Linq
Đăng bởi: Thảo meo - Lượt xem: 2203 07:48:06, 10/10/2017CSHARP   In bài viết

THẢO LUẬN BÀI VIẾT

PHẦN MỀM LẤY TIN BẤT ĐỘNG SẢN

phần mềm lấy tin tự động bất động sản

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.