intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Công nghệ Web (ASP.NET): Bài 11 - Lê Quang Lợi

Chia sẻ: Tằng Túy | Ngày: | Loại File: PDF | Số trang:18

59
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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Công nghệ Web (ASP.NET): Bài 11 - Lê Quang Lợi

  1. Bài 11: DataAccess (02) Lê Quang Lợi Email: loilequang@gmail.com loilq@utehy.edu.vn
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2