1. Giới thiệu
Để dùng các thuật toán như sum, count, … để giải quyết các phép toán đơn giản trực tiệp trên DataTable mà không cần sự can thiệp của SQL SERVER. Đối tượng DataTable cung cấp cho bạn một function dùng để giải quyết vấn đề này đó là Compute
2. Thiết kế
Bạn thiết kế một giao diện gồm
- GridView có id là gvData
- TextBox có id là txtOrderID
- Button có id là btnCompute và Text là Compute
3. Coding
- Viết function LoadOrders () và gọi tại sự kiện page_load()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| protected void Page_Load(object sender, EventArgs e) { LoadOrders (); } private void LoadOrders() { string conn = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True" ; SqlConnection sqlCon = new SqlConnection(conn); string GetEmployee = "Select TOP 10 * From [Order Details]" ; SqlDataAdapter daCustomer = new SqlDataAdapter(GetEmployee, sqlCon); DataTable dtOrder = new DataTable(); daCustomer.Fill(dtOrder); gvData.DataSource = dtOrder; gvData.DataBind(); } |
- Tại sự kiện click của nút Compute viết function để tính tổng UnitPirce của OrderID
1
2
3
4
5
6
7
8
9
10
11
| protected void btnCompute_Click(object sender, EventArgs e) { string conn = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True" ; SqlConnection sqlCon = new SqlConnection(conn); string GetOrder = "Select TOP 10 * From [Order Details]" ; SqlDataAdapter daCustomer = new SqlDataAdapter(GetOrder, sqlCon); DataTable dtOrder = new DataTable(); daCustomer.Fill(dtOrder); object total = dtOrder.Compute( " Sum(UnitPrice) " , "OrderID=" + Convert.ToInt16(txtOrderID.Text)); lblMessage.Text = "Tổng unit price là: " + total.ToString(); } |
4. Giải thích
- Hàm LoadOrders()dùng để load dữ liệu vào gridview
- Trong sự kiện click của button compute tính tổng Unit Price bằng cách
1
| object total = dtOrder.Compute( " Sum(UnitPrice) " , "OrderID=" + Convert.ToInt16(txtOrderID.Text)); |
- Và cuối cùng hiển thị lên Label lblMessage
Comments[ 0 ]
Đăng nhận xét