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

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGhoinnhgtctat
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ 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
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
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
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
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
 
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
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.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...
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.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...
 
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...
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 

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