Showing posts with label Linq. Show all posts

Một số hàm hữu ích trong LINQ to SQL



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>
1/08/2014
Đăng bởi :

[Linq to Sql] Tim kiếm

thuvienwinform - Trong bài này mình sẽ hướng dẫn các bạn cách truy vấn để tìm kiếm bằng Linq to Sql. Cũng tương tự như sửa, xóa đầu tiên cần xác định đối tượng tìm và lưu vào một biến, rồi chọn Datasource của datagridView là biến đó là OK
Demo: https://www.dropbox.com/s/ox0v7259rpyik91/Linq-ThemSuaXoa.rar (64KB)

Code:


private void btTimKiem_Click(object sender, EventArgs e)//Tìm kiếm
        {
            //Tìm Kiếm
            var listThanhVien = from ltv in db.DSLs
                                where ltv.HoTen.Contains(txtHoTen.Text)//Chọn những thành viên nào có tên gần giống với txtHoTen.Text
                                select ltv;
            dgvNoiDung.DataSource = listThanhVien;
            dgvNoiDung.Refresh();
        }      

1/07/2014
Đăng bởi :
Nhãn : ,

[Linq to Sql] Xóa dữ liệu

thuvienwinform - Sau bài 2: Sửa dữ liệu hôm nay mình sẽ giới thiệu với mọi người cách xóa một họ tên trong bảng DSL. Cũng tương tự như sửa vậy, đầu tiên cần xác định xem cái nào cần xóa sau đó ta xóa thành viên được chọn là xong. Ở đây việc chọn mình xác định bằng cách là dùng sự kiện CellClick của datagridView để xác định thành viên đang chọn.

Tải demo: bài 4

Code:


private void dgvNoiDung_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            txtHoTen.Text = dgvNoiDung.CurrentRow.Cells["HoTen"].Value.ToString();
        }

private void btXoa_Click(object sender, EventArgs e)//Xóa
        {
            //Xóa
            var thanhVien = db.DSLs.SingleOrDefault(tv => tv.HoTen == txtHoTen.Text);//Xác định thành viên cần xóa
            db.DSLs.DeleteOnSubmit(thanhVien);//Xóa thanh viên đã chọn
            db.SubmitChanges();//Xác nhận thay đổi
            Refresh();//làm mới lại datagridView
        }



1/06/2014
Đăng bởi :
Nhãn : ,

Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -