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

pdf26 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 1908 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình CSharp Winform 4.0 - Lession 9: LinQ - SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBài giảng Lập trình CSharp Winform 4.0 - Lession 9 LinQ - SQL.pdf
Tài liệu liên quan