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 4 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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.

Trang 1

Bài 11: DataAccess (02)

Lê Quang Lợi Email: loilequang@gmail.com loilq@utehy.edu.vn

Trang 2

» ADO.NET

» Stored Procedure ASP.NET

» Paging ASP.NET

Bài 11: DataAccess (02)

Trang 3

» 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

11: ADO.NET

Trang 4

11.1 Kiến trúc ADO.NET

Trang 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

Trang 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

Trang 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, …

Trang 8

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

11.1.2 Tương tác CSDL

Trang 9

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() ;

11.1.2 Tương tác CSDL

Trang 10

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" );

11.1.2 Tương tác CSDL

Trang 11

» 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

11.2 Dùng Stored Procedure

Trang 12

string conn= ConfigurationManager.AppSettings["conn"];

SqlConnection scn = new SqlConnection(con);

SqlCommand sp = new SqlCommand("CustOrdersDetail", scn);

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());

11.2 Dùng Stored Procedure

Trang 13

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

11.2 Dùng Stored Procedure

Trang 14

» Tạo kết nối: SqlConnection

» Tạo đối tượng: SqlCommand

» Thực thi SqlCommnand: ExcuteSQL, ExecuteReader

» Nhận giá trị trả về

11.2 Dùng Stored Procedure

Trang 15

» 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

11.3 Paging trong ASP.NET

Trang 16

» 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)

11.3.1 Phân trang phía ASP.NET (server web)

Trang 17

» 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

11.3.1 Phân trang phía CSDL (server DB)

Trang 18

» Đầ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

11.3.1 Phân trang phía CSDL (server DB)

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm