1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 478,51 KB

Nội dung

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à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 đố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 hành » Dùng chung loại CSDL » Thống 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: trì kết nối  Connectionless: khơng trì kết » SqlConnection: chứa thơng tin thực kết nối » DataTable, DataView, DataSet: lưu trữ kết trả » 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 trì tồn thời gian giao dịch » Khả liệu cập nhật » Chiếm tài nguyên: nhớ, CPU, ổ đĩa lưu trữ, mạng » Tồn khả tranh chấp tài ngun » Khơng có liệu bị kết nối » Các đối tượng 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 trì kết nối(Connectionless) » Dữ liệu lấy tạo sao: DataSet, DataTable » Dữ liệu sẵn có với ứng dụng: tốn tài nguyên, bùng nổ » Không bị liệu kết nối » Khơng tốn tài ngun phía máy chứa Database » Dữ liệu thay đổi cập nhật theo bó (bath) » Dữ liệu liệu lịch sử Database » Thao tác liệu nhanh thuận tiện » Tồn khả 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 liệu B02: Nhận 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 giao 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 xây dựng CSDL » Sử dụng lại mã SQL, nhiều SQL thực thực thi » Thực thi nhanh (biên dịch lần) » Xử lý khối lượng câu lệnh phức tạp phía DataBase » Lập trình xử lý liệu phía CSDL » Triển khai, thay đổi, bảo trì CSDL thuật tiện » Tách biệt lập trình ứng dụng 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 SqlPramater: name/ value  Truyền Paramater cho storedProcedure: add() » Thực thi SqlCommnand: ExcuteSQL, ExecuteReader … » Nhận giá trị trả » Hiển thị kết nhận Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY 11.3 Paging ASP.NET » Không cần hiển thị tồn mảnh kết » Q trình chia nhỏ kết trả thành nhiều mảnh » Mỗi mảnh có số lượng định » Mỗi lần hiển thị mảnh tương ứng » Đẩy nhanh tốc độc hiển thị 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 đố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 đẩy tồn phía server » Phân trang xử lý phía server » Tốn thời gian dung lượng, đường truyền » Server bị tải (sập hệ thống) » Không phải phương pháp tốt Chú ý: tránh 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 DataBase server » Dữ liệu mảnh thích hợp lấy » Tận dụng tài nguyên đường truyền » Tránh tượng bùng nổ liệu phía Server » Có thể bùng nổ liệu phía Database Server » Khó thực hiện: cho câu Sql 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 liệu theo tiêu trí  pageIndex » Tạo bảng tạm để chứa liệu  Câu SQL để lấy liệu xếp » Lấy liệu từ bảng tạm vị trí trang cần lấy  Vị trí đầu: PageNum* Pageindex  Ví trị cuối: PageNum*(pageIndex+1) » Trả kết cho storedProcedure Lê Quang Lợi: loilequang@gmail.com Môn học : Công nghệ WEB (ASP.NET) CNPM-CNTT-ĐHSPKT HY ... 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.. .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... 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 đối tượng hỗ trợ sẵn/lập

Ngày đăng: 11/05/2021, 04:18