Kĩ thuật lập trình - Language integrated query (linq)

ppt 30 trang vanle 3690
Bạn đang xem 20 trang mẫu của tài liệu "Kĩ thuật lập trình - Language integrated query (linq)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptki_thuat_lap_trinh_language_integrated_query_linq.ppt

Nội dung text: Kĩ thuật lập trình - Language integrated query (linq)

  1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2 Language Integrated Query (LINQ)
  2. Nội dung ❖Giới thiệu LINQ ❖LINQ to Object ❖LINQ to XML ❖LINQ to ADO.NET
  3. Giới thiệu LINQ using System; using System.Collections.Generic; namespace Demo01 { class Program { static void Main(string[] args) { string[]greetings={"hello world","hello LINQ","hello Apress" }; List result = new List (); foreach (string greeting in greetings) { if (greeting.EndsWith("LINQ")) { result.Add(greeting); } } foreach (string item in result) { Console.WriteLine(item); } Console.ReadLine(); } } } Trước khi có LINQ
  4. Giới thiệu LINQ using System; using System.Linq; namespace Demo01 { class Program { static void Main(string[] args) { string[]greetings = {"hello world", "hello LINQ", "hello Apress" }; var items = from s in greetings where s.EndsWith("LINQ") select s; foreach (var item in items) Console.WriteLine(item); } } } Khi có LINQ
  5. Giới thiệu LINQ ❖ Language Integrated Query (LINQ) là ngôn ngữ truy vấn hợp nhất trên các loại dữ liệu khác nhau. ❖ Với LINQ, bạn có thể truy vấn nhiều nguồn dữ liệu khác nhau trong C#: đối tượng (object), cơ sở dữ liệu SQL, tài liệu XML, mô hình dữ liệu thực thể (entity data model). ❖ Đưa ra khả năng lập trình mới trong .NET - Giải pháp lập trình hợp nhất
  6. Giới thiệu LINQ VB C# Others .NET Language-Integrated Query LINQ enabled data sources LINQ enabled ADO.NET LINQ LINQ LINQ LINQ LINQ To Objects To Datasets To SQL To Entities To XML Objects Relational XML LINQ provides one programming model for all types of data (objects, SQL, XML, DataSets)
  7. Giới thiệu LINQ ❖ Tất cả các thao tác truy vấn LINQ gồm 3 hành động chính: ▪ Lấy nguồn dữ liệu ▪ Tạo truy vấn ▪ Thực thi truy vấn
  8. LINQ to Object Sử dụng LINQ để truy vấn tập hợp các đối tượng dưới dạng IEnumerable hoặc IEnumerable Ví dụ: ▪ int[ ] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; ▪ List list; ▪ string[] str = { "Visual Studio 2008", "LINQ", "WCF", "WWF", "WPF"};
  9. LINQ to Object static void Main(string[] args) { int[ ] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var lowNums = from n in numbers where n < 5 select n; Console.WriteLine("Numbers < 5:"); foreach (var x in lowNums){ Console.WriteLine(x); } }
  10. LINQ to Object static void Main(string[] args) { string[] names = { "Alonso", "Zheng", "Smith", "Jones", "Smythe", "Small", "Ruiz", "Hsieh", "Jorgenson", "Ilyich", "Singh", "Samba", "Fatimah" }; var queryResults = from n in names where n.StartsWith("S") select n; foreach (var item in queryResults) { Console.WriteLine(item); } }
  11. LINQ to Object static void Main(string[] args) { List customers = new List { new Customer { ID="A", City="New York", Country="USA", Region="North America", Sales=9999 }, new Customer { ID="B", City="Mumbai", Country="India", Region="Asia", Sales=8888 }, new Customer { ID="C", City="Karachi", Country="Pakistan", Region="Asia", Sales=7777 }}; var queryResults = from c in customers where c.Region == "Asia" select c; foreach (Customer c in queryResults) { Console.WriteLine(c); } }
  12. LINQ to XML 1 Sách lập trình C# 1 400000 2 Sách lập trình VB 1 50000
  13. LINQ to XML Cung cấp 1 công cụ mạnh trong việc truy vấn XML var sp = (from c in XElement.Load("SanPham.xml").Elements("SanPham") select new { MaSanPham = (string)c.Element("MaSanPham"), TenSanPham = (string)c.Element("TenSanPham"), MaLoai = (string)c.Element("MaLoai"), DonGia = (string)c.Element("DonGia"), }).ToArray(); dgSanPham.DataSource = sp;
  14. LINQ to DataSet LINQ to DataSet giúp truy vấn đối tượng Dataset dễ dàng và nhanh chóng string str = "server = localhost; database = QLBH; uid=sa; pwd = 123456"; SqlConnection con = new SqlConnection(str); con.Open(); SqlDataAdapter da = new SqlDataAdapter("Select * From SanPham", con); DataSet ds = new DataSet(); da.Fill(ds, "SanPham"); var sp = (from sanpham in ds.Tables["SanPham"].AsEnumerable() select new {MaSanPham=sanpham["MaSanPham"], TenSanPham=sanpham["TenSanPham"], MaLoai=sanpham["MaLoai"], DonGia=sanpham["DonGia"]}).ToArray(); dgSanPham.DataSource = sp; con.Close();
  15. LINQ to SQL LINQ to SQL là một phiên bản Object - Relational Mapping (ORM). Database DataContext Table Class View Class Column Field / Property Relationship Field / Property Stored Procedure Method
  16. LINQ to SQL – Lớp DataContext ❖Là một lớp kết nối đến CSDL ❖Chuyển câu truy vấn thành câu lệnh SQL ❖Đảm nhận việc tương tác với CSDL ❖Thay đổi CSDL thông qua phương thức SubmitChanges()
  17. LINQ to SQL Ví dụ:
  18. Cấu trúc LINQ to SQL from c in db.Customers db.Customers.Add(c1); where c.City == "London" c2.City = “Seattle"; select c.CompanyName Application db.Customers.Remove(c3); Enumerate Objects SubmitChanges() LINQ to SQL SQL Query Rows DML( Data Manipulation Language) or SProc or SProcs SELECT CompanyName INSERT INTO Customer FROM Customer UPDATE Customer WHERE City = 'London' DELETE FROM Customer
  19. Ví dụ: Quản lý bán hàng
  20. Ví dụ: Quản lý bán hàng
  21. Ví dụ: Quản lý bán hàng
  22. Ví dụ: Quản lý bán hàng
  23. Ví dụ: Quản lý bán hàng Thiết kế giao diện
  24. Ví dụ: Quản lý bán hàng DataClassesDataContext data = new DataClassesDataContext(); var listsanpham = from sanpham in data.SanPhams select new { sanpham.MaSanPham, sanpham.TenSanPham, sanpham.MaLoai, sanpham.DonGia }; dgSanPham.DataSource = listsanpham; Load_SanPham()
  25. Ví dụ: Quản lý bán hàng DataClassesDataContext data = new DataClassesDataContext(); SanPham sp = new SanPham(); sp.MaSanPham = txtMaSanPham.Text.Trim(); sp.TenSanPham = txtTenSanPham.Text; sp.MaLoai = cboLoai.SelectedValue.ToString(); sp.DonGia =Convert.ToDecimal(txtDonGia.Text); data.SanPhams.InsertOnSubmit(sp); data.SubmitChanges(); Insert_SanPham()
  26. Ví dụ: Quản lý bán hàng DataClassesDataContext data = new DataClassesDataContext(); SanPham sp = (from sanpham in data.SanPhams where sanpham.MaSanPham == txtMaSanPham.Text.Trim() select sanpham).Single (); data.SanPhams.DeleteOnSubmit(sp); data.SubmitChanges(); Delete_SanPham()
  27. Ví dụ: Quản lý bán hàng DataClassesDataContext data = new DataClassesDataContext(); SanPham sp = (from sanpham in data.SanPhams where sanpham.MaSanPham == txtMaSanPham.Text.Trim() select sanpham).Single (); sp.MaSanPham = txtMaSanPham.Text; sp.TenSanPham = txtTenSanPham.Text; sp.MaLoai = cboLoai.SelectedValue.ToString(); sp.DonGia = Convert.ToDecimal(txtDonGia.Text); data.SubmitChanges(); Update_SanPham()
  28. LINQ vs ADO.NET ❖LINQ là tập mở rộng cho phép viết các câu truy vấn ngay trong các ngôn ngữ lập trình. ❖ADO.NET là công nghệ cho phép các ứng dụng có thể kết nối và làm việc với các loại CSDL khác nhau ❖LINQ không phải là một công nghệ được tạo ra để thay thế ADO.NET
  29. LINQ và 3-Layers GUI var query = from Business logic where select Data Access DataClassesDataContext() Data
  30. Nhiệm vụ về nhà ❖Làm lại bài tập QLBH bằng LINQ to SQL ❖Nghiên cứu XML và LINQ to XML ❖Đọc thêm tài liệu LINQ để hiểu rõ cú pháp