Bài giảng Công nghệ Web (ASP.NET): Bài 11 - Lê Quang Lợi
lượt xem 7
download
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 | 196 | 37
-
Bài giảng Lập trình Web ASP.NET: Chương 1 - ĐH Lạc Hồng
64 p | 139 | 27
-
Bài giảng Công nghệ Web và Ứng dụng: Phần 5 - Nguyễn Hoàng Tùng
13 p | 103 | 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 | 87 | 10
-
Bài giảng Công nghệ Web (ASP.NET): Bài 1 - Lê Quang Lợi
22 p | 110 | 8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 14 - Lê Quang Lợi
15 p | 87 | 8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 13 - Lê Quang Lợi
14 p | 76 | 8
-
Bài giảng Công nghệ Web (ASP.NET): Bài 3 - Lê Quang Lợi
14 p | 57 | 7
-
Bài giảng Công nghệ Web (ASP.NET): Bài 9 - Lê Quang Lợi
15 p | 46 | 7
-
Bài giảng Công nghệ Web (ASP.NET): Bài 12 - Lê Quang Lợi
16 p | 55 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 10 - Lê Quang Lợi
12 p | 59 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 6 - Lê Quang Lợi
7 p | 71 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 7 - Lê Quang Lợi
20 p | 67 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 5 - Lê Quang Lợi
11 p | 68 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 4 - Lê Quang Lợi
12 p | 53 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 2 - Lê Quang Lợi
17 p | 61 | 6
-
Bài giảng Công nghệ Web (ASP.NET): Bài 8 - Lê Quang Lợi
15 p | 52 | 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