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

TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayLcTh15
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx7E26NguynThThyLinh
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
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
 
chủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìchủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìanlqd1402
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfHngNguyn271079
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"LaiHoang6
 
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
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21nguyenthao2003bd
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ haoBookoTime
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem Số Mệnh
 
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTrangL188166
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxxaxanhuxaxoi
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ 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
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......thoa051989
 

Recently uploaded (20)

TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hay
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
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...
 
chủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìchủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kì
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
 
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...
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
 
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......
 

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