SlideShare a Scribd company logo
1 of 25
LTUDQL 2




LINQ to SQL



                   Bùi Tấn Lộc
              btloc@fit.hcmus.edu.vn




                       .           -1-   ©HCMUS
LTUDQL 2

LINQ to SQL


   • Là kỹ thuật ORM (Object Relation Mapping) của Microsoft
     dùng để ánh xạ quan hệ CSDL sang quan hệ đối tượng.
   • Giúp cho việc lập trình giao tiếp CSDL dễ dàng hơn.
   • Hỗ trợ những thao tác cơ sở dữ liệu: thêm, xóa, sửa, cập nhật
   • Hỗ trợ transaction, view, stored procedure




                               .            -2-         ©HCMUS
LTUDQL 2

Các bước thao tác CSDL với LINQ to SQL


   • Kết nối đến loại CSDL mà LINQ to SQL hỗ trợ
   • Thực hiện ánh xạ ORM (tạo file <TenCSDL>.dbml). Ví dụ:
     TruongHoc.dbml
   • Khởi tạo đối tượng CSDL đã ánh xạ (đối tượng
     <TenCSDL><DataContext>). Ví dụ: TruongHocDataContext
   • Sử dụng đối tượng CSDL trên để thao tác CSDL




                            .            -3-       ©HCMUS
LTUDQL 2

Loại CSDL LINQ to SQL hỗ trợ


   • Chỉ hỗ trợ các loại CSDL sau:
      • Microsoft SQL Server
      • Microsoft SQL Server Compact (*.sdf)
      • Microsft SQL Server Database File (*.mdf)
   • Lưu ý: Khi tạo report với Crystal Report, Crystal Report chỉ
     hỗ trợ Microsoft SQL Server, không kết nối trưc tiếp được
     với *.sdf và *.mdf




                                  .                 -4-   ©HCMUS
LTUDQL 2

Thực hiện ánh xạ ORM


   • Tạo file TenCSDL.dbml
   • Kéo tất cả các bảng vào cửa sổ Design
   • Có thể kéo các View, Stored Procedure, Function vào cửa sổ
     Design
   • Lưu ý khi đã thực hiện ánh xạ trong project sẽ xuất hiện file
     app.config. Trong file này chứa chuỗi connectionstring. Khi
     đem ứng dụng qua máy khác chạy ta chỉ cần chỉnh sửa giá trị
     chuỗi connectionstring trong file này.




                              .            -5-          ©HCMUS
LTUDQL 2

Khởi tạo đối tượng CSDL đã ánh xạ


   ‘1.Su dung gia tri chuoi connectionstring
   trong file app.config
   Dim db As New TruongHocDataContext()

   ‘2.Khong su dung gia tri chuoi
   connectionstring trong file app.config
   Dim cnStr As String
   cnStr = “..”
   Dim db As New TruongHocDataContext(cnStr)


                             .      -6-   ©HCMUS
LTUDQL 2

Truy vấn dữ liệu không điều kiện


    Public Function LayDanhSachKhachHang() As List(Of
    Customer)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c
       Return query.ToList()
    End Function




                              .    -7-      ©HCMUS
LTUDQL 2

Truy vấn dữ liệu có điều kiện


    Public   Function LayDanhSachKhachHangTheoThanhPho
    _
    (ByVal tp As String) As List(Of Customer)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Where c.City = tp
                   Select c
       Return query.ToList()
    End Function




                                .    -8-      ©HCMUS
LTUDQL 2
Truy vấn dữ liệu – Kiểu trả về không xác định (Anonymous
Type)

    Public Function LayDanhThongTinKhachHang() As
    IList
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c.ContactName, c.Phone
       Return query.ToList()
    End Function




                              .           -9-        ©HCMUS
LTUDQL 2

Truy vấn dữ liệu – Kiểu trả về xác định


    Public Function LayDanhThongTinKhachHang1() As
    List(Of ThongTinKhachHang)
      Dim db As New NorthwindDataContext()
      Dim query = From c In db.Customers
                  Select New ThongTinKhachHang With
    {.ContactName = c.ContactName, .Phone = c.Phone}
      Return query.ToList()
    End Function

    • Phải định nghĩa lớp ThongTinKhachHang có thuộc tính
      ContactName và Phone


                               .          - 10 -    ©HCMUS
LTUDQL 2

Truy vấn dữ liệu với distinct


    Public Function LayDanhSachThanhPho() As List(Of
    String)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c.City
                   Distinct
       Return query.ToList()
    End Function




                                .   - 11 -   ©HCMUS
LTUDQL 2

Truy vấn với điều kiện AndAlso, OrElse


    Dim q = From p In db.Products
            Where p.UnitsInStock <= p.ReorderLevel
            AndAlso Not p.Discontinued
            Select p

    Dim q = From p In db.Products _
            Where p.UnitPrice > 10.0# OrElse
    p.Discontinued
            Select p




                              .          - 12 -   ©HCMUS
LTUDQL 2

Truy vấn dòng đầu tiên


    Dim shipper As Shipper
    shipper = db.Shippers.First()

    Dim cust = From c In db.Customers
               Where c.CustomerID = "BONAP" Take 1

    Dim ord = (From o In db.Orders
               Where o.Freight > 10D
               Select o).First()




                         .          - 13 -   ©HCMUS
LTUDQL 2

Insert 1 dòng dữ liệu


    Dim newCustomer = New Customer With {.CustomerID
    = "MCSFT", .CompanyName = "Microsoft",
    .ContactName = "John Doe", .ContactTitle = "Sales
    Manager", .Address = "1 Microsoft Way", .City =
    "Redmond", .Region = "WA", .PostalCode = "98052",
    .Country = "USA", .Phone = "(425) 555-1234", .Fax
    = Nothing}

    db.Customers.InsertOnSubmit(newCustomer)
    db.SubmitChanges()




                         .         - 14 -      ©HCMUS
LTUDQL 2

Insert 1 dòng dữ liệu 1-many

    Dim newCategory = New Category With
    {.CategoryName = "Widgets", .Description = "Widgets are the
    customer-facing analogues " & "to sprockets and cogs."}

    Dim newProduct = New Product With {.ProductName = "Blue
    Widget",.UnitPrice = 34.56#,.Category = newCategory}

    db.Categories.InsertOnSubmit(newCategory)
    db.SubmitChanges()




                                .               - 15 -    ©HCMUS
LTUDQL 2

Insert 1 dòng dữ liệu many - many


    Dim newEmployee = New Employee With {.FirstName = "Kira",
    .LastName = "Smith"}

    Dim newTerritory = New Territory With {.TerritoryID =
    "12345", .TerritoryDescription = "Anytown",
    .Region = db.Regions.First()}

    Dim newEmployeeTerritory = New EmployeeTerritory
    With{.Employee = newEmployee, .Territory = newTerritory}

    db.Employees.InsertOnSubmit(newEmployee)
    db.Territories.InsertOnSubmit(newTerritory)
    db.EmployeeTerritories.InsetOnSubmit(newEmployeeTerritory)
    db.SubmitChanges()


                              .          - 16 -      ©HCMUS
LTUDQL 2

Update 1 dòng dữ liệu


    Dim cust As Customer
    cust = (From c In db.Customers
                Where c.CustomerID = "ALFKI"
                Select c).First()

    cust.ContactTitle = "Vice President"
    db.SubmitChanges()




                         .         - 17 -      ©HCMUS
LTUDQL 2

Update nhiều dòng dữ liệu


     Dim query = From p In db.Products _
              Where CInt(p.CategoryID.Value) = 1
              Select p
     Dim lst As List (of Product)
     lst = query.ToList()
     For Each item As Product In lst
          item.UnitPrice += 1.0
     Next

     db.SubmitChanges()



                            .       - 18 -   ©HCMUS
LTUDQL 2

Delete một dòng dữ liệu


     Dim order As Order_Detail
     order = (From c In db.Order_Details _
              Where c.OrderID = 10255 AndAlso
    c.ProductID = 36
              Select c).First()

     db.Order_Details.DeleteOnSubmit(order)
     db.SubmitChanges()




                          .        - 19 -     ©HCMUS
LTUDQL 2

Delete nhiều dòng dữ liệu

     Dim orderDetails = _
     From o In db.Order_Details _
     Where o.Order.CustomerID = "WARTH" AndAlso o.Order.EmployeeID =
    3 Select o

     Dim order = _
     (From o In db.Orders _
      Where o.CustomerID = "WARTH" AndAlso o.EmployeeID = 3 _
      Select o).First()

     For Each od As Order_Detail In orderDetails
        db.Order_Details.DeleteOnSubmit(od)
     Next

     db.Orders.DeleteOnSubmit(order)
     db.SubmitChanges()

                                .             - 20 -      ©HCMUS
LTUDQL 2

Dùng các stored procedure


    'Retrieve products based on adhoc query
    Dim products As IEnumerable(Of Product)
    products = From p In db.Products
               Where p.CategoryID = 1
               Select p
    'Retrieve products instead using a SPROC method
    products = db.GetProductsByCategory(1)
    'iterate over result
    For Each item As Product In products
         '....
    Next

                            .      - 21 -   ©HCMUS
LTUDQL 2

Phân trang truy vấn kết quả


    Public Function LaySanPham(ByVal startRow As
    Integer) As IEnumerable(Of Product)
      Dim db As New NorthwindDataContext()
      'Retrieve products based on adhoc query
      Dim products As IEnumerable(Of Product)
      products = From p In db.Products
                 Where p.CategoryID = 1
                 Select p
      Return products.Skip(startRow).Take(10)
    End Function



                              .    - 22 -   ©HCMUS
LTUDQL 2

Kết bảng (join)


    Public Function TimKiemHocSinhTheoTenLop(ByVal
    tenLop As String) As List (Of HocSinh)
       Dim db As New TruongHocDataContext()
       Dim query = From hs In db.HocSinhs
                   Join lh In db.LopHocs On hs.MaLop
    Equals lh.Ma
                   Where lh.Ten = tenLop
                   Select hs
       Return query.ToList()
    End Function



                         .         - 23 -   ©HCMUS
LTUDQL 2

Tham khảo thêm


   • http://msdn.microsoft.com/en-us/vbasic/bb688085
   • Project SampleQueries (LinQToSQLSamples.vb)




                             .           - 24 -        ©HCMUS
LTUDQL 2

Câu hỏi?




           .   - 25 -   ©HCMUS

More Related Content

Viewers also liked

Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2Dũng Đinh
 
Thiet kegiaodien
Thiet kegiaodienThiet kegiaodien
Thiet kegiaodienDũng Đinh
 
Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1Dũng Đinh
 
Hdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesHdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesDũng Đinh
 
Hdth03 ltudql02-user control
Hdth03 ltudql02-user controlHdth03 ltudql02-user control
Hdth03 ltudql02-user controlDũng Đinh
 
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linqDũng Đinh
 

Viewers also liked (6)

Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2
 
Thiet kegiaodien
Thiet kegiaodienThiet kegiaodien
Thiet kegiaodien
 
Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1
 
Hdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesHdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languages
 
Hdth03 ltudql02-user control
Hdth03 ltudql02-user controlHdth03 ltudql02-user control
Hdth03 ltudql02-user control
 
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linq
 

Similar to Linq2 sql

Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0Kim Hyun Hai
 
04.report 120625040327-phpapp02
04.report 120625040327-phpapp0204.report 120625040327-phpapp02
04.report 120625040327-phpapp02huynhtrong774129
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbANHMATTROI
 
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...zzsunzz
 
7.databinding
7.databinding7.databinding
7.databindingDao Uit
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databindingtruong le hung
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)TI Anh
 
6.adapterset
6.adapterset6.adapterset
6.adaptersetDao Uit
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...MasterCode.vn
 
Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3Dũng Đinh
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...MasterCode.vn
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vnphiagame
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderPhuoc Nguyen
 
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#Dao Uit
 

Similar to Linq2 sql (20)

Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0
 
LinQ
LinQLinQ
LinQ
 
ado.net
ado.netado.net
ado.net
 
04.report 120625040327-phpapp02
04.report 120625040327-phpapp0204.report 120625040327-phpapp02
04.report 120625040327-phpapp02
 
LINQ presentation
LINQ presentationLINQ presentation
LINQ presentation
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vb
 
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
 
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
 
7.databinding
7.databinding7.databinding
7.databinding
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
 
6.adapterset
6.adapterset6.adapterset
6.adapterset
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
 
Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3
 
ôn tập dbms
ôn tập dbmsôn tập dbms
ôn tập dbms
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
 
04 ado
04 ado04 ado
04 ado
 
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
 

More from Dũng Đinh

Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Dũng Đinh
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbDũng Đinh
 
07bis.thiet kedulieu
07bis.thiet kedulieu07bis.thiet kedulieu
07bis.thiet kedulieuDũng Đinh
 
06.mo hinhhoayeucau
06.mo hinhhoayeucau06.mo hinhhoayeucau
06.mo hinhhoayeucauDũng Đinh
 
05.thu thapyeucau
05.thu thapyeucau05.thu thapyeucau
05.thu thapyeucauDũng Đinh
 
01.lap trinhhuongdoituong
01.lap trinhhuongdoituong01.lap trinhhuongdoituong
01.lap trinhhuongdoituongDũng Đinh
 

More from Dũng Đinh (9)

Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
07bis.thiet kedulieu
07bis.thiet kedulieu07bis.thiet kedulieu
07bis.thiet kedulieu
 
06.mo hinhhoayeucau
06.mo hinhhoayeucau06.mo hinhhoayeucau
06.mo hinhhoayeucau
 
05.thu thapyeucau
05.thu thapyeucau05.thu thapyeucau
05.thu thapyeucau
 
04.mo daucnpm
04.mo daucnpm04.mo daucnpm
04.mo daucnpm
 
03.ke thua daxa
03.ke thua daxa03.ke thua daxa
03.ke thua daxa
 
02.thiet kelop
02.thiet kelop02.thiet kelop
02.thiet kelop
 
01.lap trinhhuongdoituong
01.lap trinhhuongdoituong01.lap trinhhuongdoituong
01.lap trinhhuongdoituong
 

Recently uploaded

Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptPhamThiThuThuy1
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxTrnHiYn5
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdfltbdieu
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...Nguyen Thanh Tu Collection
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạowindcances
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...Nguyen Thanh Tu Collection
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf4pdx29gsr9
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiNgocNguyen591215
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoidnghia2002
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietNguyễn Quang Huy
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnKabala
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phươnghazzthuan
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàNguyen Thi Trang Nhung
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 

Recently uploaded (20)

Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 

Linq2 sql

  • 1. LTUDQL 2 LINQ to SQL Bùi Tấn Lộc btloc@fit.hcmus.edu.vn . -1- ©HCMUS
  • 2. LTUDQL 2 LINQ to SQL • Là kỹ thuật ORM (Object Relation Mapping) của Microsoft dùng để ánh xạ quan hệ CSDL sang quan hệ đối tượng. • Giúp cho việc lập trình giao tiếp CSDL dễ dàng hơn. • Hỗ trợ những thao tác cơ sở dữ liệu: thêm, xóa, sửa, cập nhật • Hỗ trợ transaction, view, stored procedure . -2- ©HCMUS
  • 3. LTUDQL 2 Các bước thao tác CSDL với LINQ to SQL • Kết nối đến loại CSDL mà LINQ to SQL hỗ trợ • Thực hiện ánh xạ ORM (tạo file <TenCSDL>.dbml). Ví dụ: TruongHoc.dbml • Khởi tạo đối tượng CSDL đã ánh xạ (đối tượng <TenCSDL><DataContext>). Ví dụ: TruongHocDataContext • Sử dụng đối tượng CSDL trên để thao tác CSDL . -3- ©HCMUS
  • 4. LTUDQL 2 Loại CSDL LINQ to SQL hỗ trợ • Chỉ hỗ trợ các loại CSDL sau: • Microsoft SQL Server • Microsoft SQL Server Compact (*.sdf) • Microsft SQL Server Database File (*.mdf) • Lưu ý: Khi tạo report với Crystal Report, Crystal Report chỉ hỗ trợ Microsoft SQL Server, không kết nối trưc tiếp được với *.sdf và *.mdf . -4- ©HCMUS
  • 5. LTUDQL 2 Thực hiện ánh xạ ORM • Tạo file TenCSDL.dbml • Kéo tất cả các bảng vào cửa sổ Design • Có thể kéo các View, Stored Procedure, Function vào cửa sổ Design • Lưu ý khi đã thực hiện ánh xạ trong project sẽ xuất hiện file app.config. Trong file này chứa chuỗi connectionstring. Khi đem ứng dụng qua máy khác chạy ta chỉ cần chỉnh sửa giá trị chuỗi connectionstring trong file này. . -5- ©HCMUS
  • 6. LTUDQL 2 Khởi tạo đối tượng CSDL đã ánh xạ ‘1.Su dung gia tri chuoi connectionstring trong file app.config Dim db As New TruongHocDataContext() ‘2.Khong su dung gia tri chuoi connectionstring trong file app.config Dim cnStr As String cnStr = “..” Dim db As New TruongHocDataContext(cnStr) . -6- ©HCMUS
  • 7. LTUDQL 2 Truy vấn dữ liệu không điều kiện Public Function LayDanhSachKhachHang() As List(Of Customer) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c Return query.ToList() End Function . -7- ©HCMUS
  • 8. LTUDQL 2 Truy vấn dữ liệu có điều kiện Public Function LayDanhSachKhachHangTheoThanhPho _ (ByVal tp As String) As List(Of Customer) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Where c.City = tp Select c Return query.ToList() End Function . -8- ©HCMUS
  • 9. LTUDQL 2 Truy vấn dữ liệu – Kiểu trả về không xác định (Anonymous Type) Public Function LayDanhThongTinKhachHang() As IList Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c.ContactName, c.Phone Return query.ToList() End Function . -9- ©HCMUS
  • 10. LTUDQL 2 Truy vấn dữ liệu – Kiểu trả về xác định Public Function LayDanhThongTinKhachHang1() As List(Of ThongTinKhachHang) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select New ThongTinKhachHang With {.ContactName = c.ContactName, .Phone = c.Phone} Return query.ToList() End Function • Phải định nghĩa lớp ThongTinKhachHang có thuộc tính ContactName và Phone . - 10 - ©HCMUS
  • 11. LTUDQL 2 Truy vấn dữ liệu với distinct Public Function LayDanhSachThanhPho() As List(Of String) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c.City Distinct Return query.ToList() End Function . - 11 - ©HCMUS
  • 12. LTUDQL 2 Truy vấn với điều kiện AndAlso, OrElse Dim q = From p In db.Products Where p.UnitsInStock <= p.ReorderLevel AndAlso Not p.Discontinued Select p Dim q = From p In db.Products _ Where p.UnitPrice > 10.0# OrElse p.Discontinued Select p . - 12 - ©HCMUS
  • 13. LTUDQL 2 Truy vấn dòng đầu tiên Dim shipper As Shipper shipper = db.Shippers.First() Dim cust = From c In db.Customers Where c.CustomerID = "BONAP" Take 1 Dim ord = (From o In db.Orders Where o.Freight > 10D Select o).First() . - 13 - ©HCMUS
  • 14. LTUDQL 2 Insert 1 dòng dữ liệu Dim newCustomer = New Customer With {.CustomerID = "MCSFT", .CompanyName = "Microsoft", .ContactName = "John Doe", .ContactTitle = "Sales Manager", .Address = "1 Microsoft Way", .City = "Redmond", .Region = "WA", .PostalCode = "98052", .Country = "USA", .Phone = "(425) 555-1234", .Fax = Nothing} db.Customers.InsertOnSubmit(newCustomer) db.SubmitChanges() . - 14 - ©HCMUS
  • 15. LTUDQL 2 Insert 1 dòng dữ liệu 1-many Dim newCategory = New Category With {.CategoryName = "Widgets", .Description = "Widgets are the customer-facing analogues " & "to sprockets and cogs."} Dim newProduct = New Product With {.ProductName = "Blue Widget",.UnitPrice = 34.56#,.Category = newCategory} db.Categories.InsertOnSubmit(newCategory) db.SubmitChanges() . - 15 - ©HCMUS
  • 16. LTUDQL 2 Insert 1 dòng dữ liệu many - many Dim newEmployee = New Employee With {.FirstName = "Kira", .LastName = "Smith"} Dim newTerritory = New Territory With {.TerritoryID = "12345", .TerritoryDescription = "Anytown", .Region = db.Regions.First()} Dim newEmployeeTerritory = New EmployeeTerritory With{.Employee = newEmployee, .Territory = newTerritory} db.Employees.InsertOnSubmit(newEmployee) db.Territories.InsertOnSubmit(newTerritory) db.EmployeeTerritories.InsetOnSubmit(newEmployeeTerritory) db.SubmitChanges() . - 16 - ©HCMUS
  • 17. LTUDQL 2 Update 1 dòng dữ liệu Dim cust As Customer cust = (From c In db.Customers Where c.CustomerID = "ALFKI" Select c).First() cust.ContactTitle = "Vice President" db.SubmitChanges() . - 17 - ©HCMUS
  • 18. LTUDQL 2 Update nhiều dòng dữ liệu Dim query = From p In db.Products _ Where CInt(p.CategoryID.Value) = 1 Select p Dim lst As List (of Product) lst = query.ToList() For Each item As Product In lst item.UnitPrice += 1.0 Next db.SubmitChanges() . - 18 - ©HCMUS
  • 19. LTUDQL 2 Delete một dòng dữ liệu Dim order As Order_Detail order = (From c In db.Order_Details _ Where c.OrderID = 10255 AndAlso c.ProductID = 36 Select c).First() db.Order_Details.DeleteOnSubmit(order) db.SubmitChanges() . - 19 - ©HCMUS
  • 20. LTUDQL 2 Delete nhiều dòng dữ liệu Dim orderDetails = _ From o In db.Order_Details _ Where o.Order.CustomerID = "WARTH" AndAlso o.Order.EmployeeID = 3 Select o Dim order = _ (From o In db.Orders _ Where o.CustomerID = "WARTH" AndAlso o.EmployeeID = 3 _ Select o).First() For Each od As Order_Detail In orderDetails db.Order_Details.DeleteOnSubmit(od) Next db.Orders.DeleteOnSubmit(order) db.SubmitChanges() . - 20 - ©HCMUS
  • 21. LTUDQL 2 Dùng các stored procedure 'Retrieve products based on adhoc query Dim products As IEnumerable(Of Product) products = From p In db.Products Where p.CategoryID = 1 Select p 'Retrieve products instead using a SPROC method products = db.GetProductsByCategory(1) 'iterate over result For Each item As Product In products '.... Next . - 21 - ©HCMUS
  • 22. LTUDQL 2 Phân trang truy vấn kết quả Public Function LaySanPham(ByVal startRow As Integer) As IEnumerable(Of Product) Dim db As New NorthwindDataContext() 'Retrieve products based on adhoc query Dim products As IEnumerable(Of Product) products = From p In db.Products Where p.CategoryID = 1 Select p Return products.Skip(startRow).Take(10) End Function . - 22 - ©HCMUS
  • 23. LTUDQL 2 Kết bảng (join) Public Function TimKiemHocSinhTheoTenLop(ByVal tenLop As String) As List (Of HocSinh) Dim db As New TruongHocDataContext() Dim query = From hs In db.HocSinhs Join lh In db.LopHocs On hs.MaLop Equals lh.Ma Where lh.Ten = tenLop Select hs Return query.ToList() End Function . - 23 - ©HCMUS
  • 24. LTUDQL 2 Tham khảo thêm • http://msdn.microsoft.com/en-us/vbasic/bb688085 • Project SampleQueries (LinQToSQLSamples.vb) . - 24 - ©HCMUS
  • 25. LTUDQL 2 Câu hỏi? . - 25 - ©HCMUS