Đăng bởi : Nông Ngọc Hoài
1/08/2014
thuvienwinform - LINQ to SQL có rất nhiều hàm, thủ tục hỗ trợ chúng ta trong việc lọc dữ liệu chọn dữ liệu và tất nhiên là nó đã được tối ưu sẵn, cách sử dụng cũng rất đơn giản, dễ ràng trong việc sử dụng, hôm nay mình xin được giới thiệu với mọi người một số hàm, thủ tục chọn dữ liệu
1. Chọn dữ liệu từ 2 bảng:
- Để chọn dữ liệu từ 2 bảng ta sẽ dùng lệnh from như sau:
var canBos = from cb in db.tbCanBos from phong in db.tbPhongs where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ") select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };
- Chú ý: trong select ta phải dùng new, tức là tạo một bảng mới gồm các thành viện được chọn.
2. Sắp xếp tăng dần theo một trường
- Cách 1: Sắp xếp ngay trong câu lệnh truy vấn:
var canBos = from cb in db.tbCanBos from phong in db.tbPhongs where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ") orderby cb.HeSoLuong descending //Sap xep theo hesoluong select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };
Câu truy vấn này sẽ chọn ra những cán bộ thuộc khoa ngoại ngữ và sắp xếp tăng dần theo hesoluong
- Cách 2: Truy vấn xong mới sắp xếp (cách này hay hơn)
var canBos = from cb in db.tbCanBos from phong in db.tbPhongs where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ") select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong }; canBos = canBos.OrderByDescending(p => p.HeSoLuong);
3. Lấy số dữ liệu nhất định
- Như ví dụ lấy số cán bộ ở trên, ta chỉ cẩn lấy ra 10 đầu tiên trong kết quả thu được thôi, câu lệnh sẽ là:
canBos = canBos.Take(10);Hoặc
canBos = canBos.Skip(10);- Với cách dùng Skip() thì ta sẽ bỏ qua 10 người ở đầu danh sách và lấy những người từ vị trí 11 trong danh sách thu được
4. Đếm số dữ liệu thu được sau khi truy vấn
int soNguoi = canBos.Count(10);
<còn tiếp>