Bài giảng Công nghệ Web (ASP.NET): Bài 11 - Lê Quang Lợi
lượt xem 7
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài 11 tiếp tục trình bày những kiến thức về Data Access. Trong chương này chúng ta sẽ tập trung tìm hiểu những nội dung như: Kiến trúc ADO.NET, tương tác CSDL, dùng Stored Procedure, paging trong ASP.NET,... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Công nghệ Web (ASP.NET): Bài 11 - Lê Quang Lợi
- Bài 11: DataAccess (02) Lê Quang Lợi Email: loilequang@gmail.com loilq@utehy.edu.vn
- Bài 11: DataAccess (02) » ADO.NET » Stored Procedure ASP.NET » Paging ASP.NET Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11: ADO.NET » Tập các đối tượng hỗ trợ lập trình tương tác CSDL » Các đối tượng: DataSet, DataTable, DataView… » Các đối tượng kết nối: SqlConnection, SqlCommand » Kết nối hầu hết CSDL hiện hành » Dùng chung mọi loại CSDL » Thống nhất cách sử dụng, tương tác Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.1 Kiến trúc ADO.NET Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.1 Kiến trúc ADO.NET » ADO.NET hỗ trợ hai chế độ kết nối: Connection: duy trì kết nối Connectionless: không duy trì kết » SqlConnection: chứa thông tin và thực hiện kết nối » DataTable, DataView, DataSet: lưu trữ kết quả trả về » SqlDataAdpapter, SqlCommand: thực thi sql Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- a) Duy trì kết nối (Connection) » Kết nối được duy trì trong toàn bộ thời gian giao dịch » Khả năng dữ liệu luôn được cập nhật và mới nhất » Chiếm tài nguyên: bộ nhớ, CPU, ổ đĩa lưu trữ, mạng » Tồn tại khả năng tranh chấp tài nguyên » Không có dữ liệu nếu như bị mất kết nối » Các đối tượng duy trì kết nối: SqlCommand, DataReader, Record … Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- b) Không duy trì kết nối(Connectionless) » Dữ liệu được lấy về và tạo bản sao: DataSet, DataTable » Dữ liệu sẵn có cùng với ứng dụng: tốn tài nguyên, bùng nổ » Không bị mất dữ liệu khi mất kết nối » Không tốn tài nguyên ở phía máy chứa Database » Dữ liệu là bản sao có thể thay đổi cập nhật theo bó (bath) » Dữ liệu là dữ liệu lịch sử trên Database » Thao tác dữ liệu nhanh và thuận tiện » Tồn tại khả năng tranh chấp tài nguyên » Các đối tượng: DataSet, DataAdapter, … Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.1.2 Tương tác CSDL B01: Xây dựng giao diện tương tác dữ liệu B02: Nhận dữ liệu từ giao diện đã thiết kế B03: Tạo kết nối: SqlConnection B3.1: Xây dựng câu truy vấn: SQL/StoredProcedure B3.2: Thực thi câu lệnh/nhận lại kết quả: SqlCommand B04: Hiển thị kết quả ra giao hiện tương ứng Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.1.2 Tương tác CSDL string strCon= ConfigurationSettings.AppSettings*“myConn"+; SqlConnection conn= new SqlConnection(strCon); string sql = "DELETE FROM Publisher WHERE ID = 6"; SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); lblRecords.Text = Convert.ToString(cmd.ExecuteNonQuery()); conn.Close(); Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.1.2 Tương tác CSDL string strConn = ConfigurationSettings.AppSettings[“myStrConn"]; string sql = "SELECT * FROM Publisher"; SqlConnection conn = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(sql, conn); DataTable mDT= new DataTable(); SqlDataAdapter mA = new SqlDataAdapter(); mA.SelectCommand = cmd; conn.Open(); mA.Fill(mDT,"Publisher"); conn.Close(); g1.DataSource=mDT; g1.DataBind(); Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.2 Dùng Stored Procedure » Câu lệnh Sql được xây dựng trong CSDL » Sử dụng lại mã SQL, nhiều SQL thực thực thi » Thực thi nhanh (biên dịch một lần) » Xử lý một khối lượng câu lệnh phức tạp phía DataBase » Lập trình xử lý dữ liệu phía CSDL » Triển khai, thay đổi, bảo trì CSDL thuật tiện » Tách biệt giữa lập trình ứng dụng và lập trình CSDL » Bảo mật: tránh injection SQL Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.2 Dùng Stored Procedure string conn= ConfigurationManager.AppSettings["conn"]; SqlConnection scn = new SqlConnection(con); SqlCommand sp = new SqlCommand("CustOrdersDetail", scn); spcmd.CommandType = CommandType.StoredProcedure SqlParameter theID = new SqlParameter("@OrderID", SqlDbType.Int); theID.Value = Convert.ToInt32(this.txt1.Text); spcmd.Parameters.Add(theID); scn.Open(); SqlDataReader dr = spcmd.ExecuteReader(); while (dr.Read()){ listBox2.Items.Add(dr.GetValue(0).ToString()); } dr.Close(); scn.Close(); Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.2 Dùng Stored Procedure CREATE PROCEDURE GetEmployees @LastName nvarchar(50), @FirstName nvarchar(50) AS Begin SET NOCOUNT ON; SELECT FirstName, LastName, Department FROM Employee WHERE FirstName = @FirstName AND LastName = @LastName AND EndDate IS NULL; End Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.2 Dùng Stored Procedure » Tạo kết nối: SqlConnection » Tạo đối tượng: SqlCommand Tạo CommantType: StoredProcedure Tạo tạo các SqlPramater: name/ value Truyền Paramater cho storedProcedure: add() » Thực thi SqlCommnand: ExcuteSQL, ExecuteReader … » Nhận giá trị trả về » Hiển thị kết quả nhận được Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.3 Paging trong ASP.NET » Không cần hiển thị toàn bộ mảnh kết quả » Quá trình chia nhỏ kết quả trả về thành nhiều mảnh » Mỗi mảnh có số lượng nhất định » Mỗi lần hiển thị mảnh tương ứng » Đẩy nhanh tốc độc hiển thị dữ liệu » Giảm dung lượng cho đường truyền » Giảm tài nguyên: CPU, Time, Ram … » Phân trang: Phía server, phía CSDL Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.3.1 Phân trang phía ASP.NET (server web) » Dùng các đối tượng hỗ trợ sẵn/lập trình phía server » Các control cho phép phân trang: GrideView, ListView… » Thuộc tính: EnablePaging= “true” » Dữ liệu được đẩy về toàn bộ phía server » Phân trang xử lý phía server » Tốn thời gian và dung lượng, đường truyền » Server có thể bị quá tải (sập hệ thống) » Không phải là phương pháp tốt Chú ý: tránh hiện tượng bùng nổ tài nguyên/truy cập Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.3.1 Phân trang phía CSDL (server DB) » Dùng StoredProcedure để phân trang » Xửa lý phân trang dựa trên DataBase server » Dữ liệu là mảnh thích hợp lấy được » Tận dụng được tài nguyên đường truyền » Tránh hiện tượng bùng nổ dữ liệu phía Server » Có thể bùng nổ dữ liệu phía Database Server » Khó thực hiện: cho từng câu Sql và lập trình CSDL » Giải pháp tốt cho ứng dụng web Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
- 11.3.1 Phân trang phía CSDL (server DB) » Đầu vào: Đối lấy dữ liệu theo tiêu trí pageIndex » Tạo bảng tạm để chứa dữ liệu Câu SQL để lấy dữ liệu và sắp xếp » Lấy dữ liệu từ bảng tạm tại vị trí trang cần lấy Vị trí đầu: PageNum* Pageindex Ví trị cuối: PageNum*(pageIndex+1) » Trả kết quả về cho storedProcedure Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Web ASP.Net với C# - ThS. Phạm Đào Minh Vũ
441 p |
207
|
38
-
Bài giảng Lập trình Web ASP.NET: Chương 1 - ĐH Lạc Hồng
64 p |
150
|
27
-
Bài giảng Công nghệ Web và Ứng dụng: Phần 5 - Nguyễn Hoàng Tùng
13 p |
106
|
10
-
Bài giảng Lập trình Web ASP.Net với C#: Chương 8 - Th.S Phạm Đào Minh Vũ
65 p |
94
|
10
-
Bài giảng Công nghệ Web (ASP.NET): Bài 1 - Lê Quang Lợi
22 p |
112
|
8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 14 - Lê Quang Lợi
15 p |
91
|
8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 13 - Lê Quang Lợi
14 p |
78
|
8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 3 - Lê Quang Lợi
14 p |
63
|
7
-
Bài giảng Công nghệ Web (ASP.NET): Bài 9 - Lê Quang Lợi
15 p |
47
|
7
-
Bài giảng Công nghệ Web (ASP.NET): Bài 12 - Lê Quang Lợi
16 p |
59
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 10 - Lê Quang Lợi
12 p |
62
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 6 - Lê Quang Lợi
7 p |
77
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 7 - Lê Quang Lợi
20 p |
72
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 5 - Lê Quang Lợi
11 p |
73
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 4 - Lê Quang Lợi
12 p |
55
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 2 - Lê Quang Lợi
17 p |
65
|
6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 8 - Lê Quang Lợi
15 p |
53
|
5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn