Bài giảng Lập trình CSharp Winform 4.0 - Lession 9: LinQ - SQL
AD O .Ne t
SqlConnection
SqlCommand
SqlDataAdapter
DataSet, DataTable
Fill or ExecuteNonQuery()
• Cla s s :
Tách hàm trong 1 Form
Class trong Form
Class ở 1 File riêng biệt
Public, Private, Static
Set/get trong Class
CÁCH THỨC HỌC: • Demo t rự c t i ếp , có v i deo và bà i t ập s au mỗ i b à i họ c • Sử dụng họ c t heo mô i t rường Lab • Ứng dụng dự án thự c t ế • Hỗ t rợ họ c t rự c t i ếp/ từ xa qua Teamv i ew • Hỗ t rợ g i ả i đ áp qua ma i l , n i ck y ahoo 24/7 từ 9h s áng đ ến 22h mỗ i n gày ( t r ả lờ i t hư ch ậm nh ấ t 24h ) . • Nick yahoo : t hanhso f t 2009 – Skype : t hanhso f t . 2009 • Ema i l : t hanh . thanhso f t@gma i l . c om in fo@thanhso f t .n e t • Di động : 0908 450 457 Khoá lập trình Csharp Winform 4.0 2/26/2013Thiết kế bởi Thanhsoft.,LTD 1 NỘ I DUNG BÀI GẦN NHẤT : • ADO.Net SqlConnection SqlCommand SqlDataAdapter DataSet, DataTable Fill or ExecuteNonQuery() • Class : Tách hàm trong 1 Form Class trong Form Class ở 1 File riêng biệt Public, Private, Static Set/get trong Class Xem lại nội dung trước 2/26/2013Thiết kế bởi Thanhsoft.,LTD 2 YÊU CẦU VÀ NỘ I DUNG: YÊU CẦU: • Nắm vững cách thức truy vấn dữ liệu SQL từ phía server • Biết cách tạo Database, Table, View, Store Procedure • Thành thạo sử dụng các vòng lặp for/foeach NỘ I DỤNG: • Các bước tạo Modal ánh xạ vào Database • SELECT 1 bảng, nhiều bảng • Insert, Update, Delete bằng Entity FrameWork 4.0 • Hướng dẫn cách gọi table, gọi view, gọi store procedure không tham số và có tham số trên Entity Framework Lession 09: LinQ - SQL 2/26/2013Thiết kế bởi Thanhsoft.,LTD 3 • L inQ l à từ v i ế t t ắ t của LANGUAGE INTEGRATED QUERY ( ngôn ngữ t ruy vấn thông m inh) . • L inQ ra đờ i v à t í ch hợp t rong .Ne t>=3 .5 . • L inQ l à t ập hợp cá c t hành ph ần mở rộng g iúp t ruy v ấn dữ l i ệu nhanh hơn , b ằng t i ện í ch có s ẵn ngay t r ên ngôn ngữ l ập t r ì nh . • Cú pháp L inQ đơn g i ản , d ễ h i ểu . • L inQ ra đờ i không ph ả i l àm t ăng tố c độ t hự c t h i chương t r ì nh , mà ch ỉ g iúp cho l ập t r ì nh v i ên v i ế t mã nhanh hơn , qu ản l ý đơn g i ản hơn . • Khi sử dụng L inQ , có t h ể k ế t hợp c ả ADO.Ne t đ ể t ruy v ấn dữ l i ệu . LinQ là gì? 2/26/2013Thiết kế bởi Thanhsoft.,LTD 4 Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 5 Chọn ADO.NET EF Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 6 NEXT Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 7 Chọn new connection Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 8 Nhập các thông số Nhập các thông số Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 9 NEXT Khởi động Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 10 Chọn Table/ View/Store Procedure Mô hình Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 11 • Sau kh i đã ánh x ạ Mode l vào Da t aba se , n ếu mỗ i l ần thay đổ i 1 v i ệ c g ì đó ( c ấu t rúc Tab l e , t hêm Hàm,…) dướ i Da t aba se t h ì ph ả i Upda t e l ạ i Mode l . • Ph ả i kha i báo t hư v i ện System.LinQ đ ể ch ạy L inQ • Ph ả i dùng var đ ể kha i báo b i ến kh i muốn t ruy v ấn l ệnh SELECT ,DELETE • Ph ả i khở i tạo tên bảng , n ếu muốn UPDATE , INSERT Lưu ý 2/26/2013Thiết kế bởi Thanhsoft.,LTD 12 SELECT 1 Table 2/26/2013Thiết kế bởi Thanhsoft.,LTD 13 SELECT >=2 bảng Table 2/26/2013Thiết kế bởi Thanhsoft.,LTD 14 Order by…. 2/26/2013Thiết kế bởi Thanhsoft.,LTD 15 Where…. 2/26/2013Thiết kế bởi Thanhsoft.,LTD 16 Fill… DataTable 2/26/2013Thiết kế bởi Thanhsoft.,LTD 17 Insert,Update,Delete 2/26/2013Thiết kế bởi Thanhsoft.,LTD 18 INSERT UPDATE DELETE • Có th ể l ấy m ẩu t i n mớ i nh ấ t • Có th ể l ấy m ẩu t i n cũ nh ấ t • Có hỗ t rợ nh i ều hàm g iúp thao t á c nhanh hơn Những điểm lợi của Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 19 • Khi t ruy v ấn từ nh i ều Tab l e s ẽ khó khăn • Cú pháp ngượ c vớ i cú pháp ADO.NET Error 2/26/2013Thiết kế bởi Thanhsoft.,LTD 20 • Khi chúng t a không muốn sử dụng cá c Ob j e c t từ Moda l , c ó t h ể v i ế t c âu l ệnh ( Que ry ) t rự c t i ếp t rong En t i t y b ằng ExecuteStoreQuery • ExecuteStoreQuery t r ả v ề 1 lớp động L i s t , do v ậy , t rướ c đó ph ả i kha i báo 1 lớp chứa các thuộc t ính ( S e t / Ge t ) chứa c á c t rường c ần quan t âm. • ExecuteStoreQuery có t h ể đượ c sử dụng đ ể v i ế t c ommand hay gọ i S t o re P rocedure có t ham số hay không có t ham số Query trong Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 21 Command trong Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 22 DTA1Entities context = new DTA1Entities(); var query = context.ExecuteStoreQuery("select donvi_kihieu from donvi1"); dataGridView1.DataSource = query.ToList(); Lớp List Command trong Entity có tham số 2/26/2013Thiết kế bởi Thanhsoft.,LTD 23 DTA1Entities context = new DTA1Entities(); string sql = "select donvi_kihieu from donvi1 where donvi_ten={0}"; var query = context.ExecuteStoreQuery(sql,textBox1.Text.Trim()); dataGridView1.DataSource = query.ToList(); Lớp List Store procedure trong Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 24 DTA1Entities context = new DTA1Entities(); string sql = "sp_a"; var query = context.ExecuteStoreQuery(sql); dataGridView1.DataSource = query.ToList(); Lớp List Store procedure trong Entity có tham số 2/26/2013Thiết kế bởi Thanhsoft.,LTD 25 DTA1Entities context = new DTA1Entities(); string sql = "sp_a_para @donvi_ten={0}"; var query = context.ExecuteStoreQuery(sql,textBox1.Text.Trim()); dataGridView1.DataSource = query.ToList(); Lớp List Truy v ấn s ẽ b ị lỗ i kh i : • Query t r ả v ề số F i e ld nhỏ hơn số F i e ld của lớp khở i t ạo • Query t r ả v ề F i e ld có k i ểu dữ l i ệu khác vớ i k i ểu F i e ld của lớp khở i t ạo Error trong Query Entity 2/26/2013Thiết kế bởi Thanhsoft.,LTD 26 Về trái trả về kiểu số, vế phải trả về kieur chuỗi Về trái trả về 1 Field, vế phải trả về nhiều hơn 1 Field
File đính kèm:
- Bài giảng Lập trình CSharp Winform 4.0 - Lession 9 LinQ - SQL.pdf