ASPNET Framework – Bảo trì trạng thái ứng d...

276
1 Chương I ASPNET Framework – Bo trì trng thái ng dng 22/10/2012 1 Mc tiêu •Hc xong chương này sinh viên có th: – Hiu khái nim ASP.NET và .NET Framework. – Biết sdng môi trường phát trin ng dng Web Visual Studio .Net. – Hiu ý nghĩa và cách bo trì trng thái ng dng –To được ng dng Web, lưu givà sdng trng thái ca các đối tượng trong ng dng bng Cookies, Session và Profile 22/10/2012 2

Transcript of ASPNET Framework – Bảo trì trạng thái ứng d...

Page 1: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

1

Chương I

ASPNET Framework –Bảo trì trạng thái ứng dụng

22/10/2012 1

Mục tiêu• Học xong chương này sinh viên có thể:

– Hiểu khái niệm ASP.NET và .NET Framework.– Biết sử dụng môi trường phát triển ứng dụng

Web Visual Studio .Net.– Hiểu ý nghĩa và cách bảo trì trạng thái ứng

dụng– Tạo được ứng dụng Web, lưu giữ và sử dụng

trạng thái của các đối tượng trong ứng dụng bằng Cookies, Session và Profile

22/10/2012 2

Page 2: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

2

Nội dung• ASP.NET và .NET Framework • Các điều khiển ASP.NET • Trang ASP.NET • Giới thiệu trạng thái ứng dụng• Sử dụng Cookies • Sử dụng Session • Sử dụng Profile

Bài 1. ASP.NET và .NET Framework

• Giới thiệu• Thư viện lớp trong .Net Framework• Môi trường thực thi ngôn ngữ chung

Page 3: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

3

Giới thiệu• ASP.NET là công nghệ nền tảng để xây

dựng ứng dụng web và dịch vụ web của Microsoft.

• ASP.NET không phải là công nghệ xây dựng ứng dụng web duy nhất.

• ASP.NET được tích hợp chặt chẽ với hệ thống phần mềm của Microsoft, từ hệ điều hành, web server… đến công cụ lập trình, truy cập dữ liệu, bảo mật...

22/10/2012 5

Định nghĩa ASP.NET• ASP.NET là một phần của .NET Framework

và bao gồm một số thành phần sau: – Công cụ phát triển ứng dụng web Visual Studio

.NET– Không gian tên System.Web.– Các điều khiển Server and HTML.

22/10/20126

Page 4: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

4

Ưu điểm của ASP.NET • Phần thực thi của ứng dụng web được biên

dịch, do đó ứng dụng sẽ chạy nhanh hơn các ngôn ngữ thông dịch khác

• Ứng dụng có thể được cập nhật liên tục mà không cần khởi động lại web server

• Khả năng sử dụng .NET Framework là phần mở rộng của Windows API

• Khả năng sử dụng cácngôn ngữ phổ biến Visual Basic và ngôn ngữ mới Visual C#

• Khả năng sử dụng các điều khiển server để xây dựng giao diện giống như các ứng dụng Windows

22/10/2012 7

Ưu điểm của ASP.NET (tt)• Khả năng tạo ra các điều khiển server mới• Sử dụng cơ chế bảo mật có sẵn của hệ điều

hành Windows• Khả năng truy cập dữ liệu bằng ADO.NET• Khả năng hỗ trợ đầy đủ Extensible Markup

Language (XML), cascading style sheets (CSS), và các chuẩn Internet khác

• Các tính năng caching trang web, bản địa hóa nội dung được tích hợp sẵn

22/10/2012 8

Page 5: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

5

Các thành phần củaứng dụng web

• Ứng dụng web gồm 3 phần chính:–Phần nội dung:

• Web form, trang HTML, hình ảnh, âm thanh…

–Phần xử lý:• Các tập tin thực thi, các đoạn script

–Phần thông tin cấu hình:• Các tập tin cấu hình, tập tin CSS, cấu

hình web server

22/10/2012 9

Giới thiệu .NET Framework • .NET Framework là nền tảng lập trình mới

của Microsoft để phát triển các ứng dụng windows cũng như ứng dụng web

• .NET Framework gồm 2 phần chính:– Thư viện các lớp cung cấp các hàm lập trình

cấp thấp (tương tự Windows API) cũng như cấp cao để phát triển ứng dụng web (ASP.NET), truy cập dữ liệu (ADO.NET), bảo mật…

– Phần lõi thực thi gọi là common language runtime (CLR)

22/10/2012 10

Page 6: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

6

Cách thực thi một ứng dụng .NET

22/10/2012 11

Thư viện lớp của .NET• Thư viện lớp của .NET cung cấp khả năng

sử dụng các tính năng của CLR. • Thư viện lớp của.NET được tổ chức theo

không gian lớp. • Mỗi không gian lớp chứa các lớp có tính

năng liên quan với nhau

22/10/2012 12

Page 7: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

7

Một số không gian tên của .NET• Namespace: Là tên gọi một nhóm các lớp đối tượng phục vụ cho một mục đích nào đó

• Ví dụ:– System – System.Data– System.Web– System.Web.UI.WebControls– System.Web.UI.WebControls.WebParts– …

22/10/2012 13

Một số không gian tên trong ứng dụng Web

• System.Web:– Gồm các đối tượng Application, Browser,

Cache, Cookies, Exeception, Request, Response, Server và Trace.

– Sử dụng các lớp này trong hầu hết các tác vụlập trình Web. Các đối tượng Application địnhnghĩa trong Global.asax được dựa trên lớpApplication

• .

14GV.

Page 8: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

8

Một số không gian tên trong ứng dụng Web (tt)

• System.Web.SessionState– Đối tượng Session. – Sử dụng các lớp này để lưu trữ và khôi phục

các thông tin trạng thái chứa trong Session.• System.Web.Services

– Đối tượng WebService. – Sử dụng lớp này để tạo và sử dụng dịch vụ

Web.

15GV.

Một số không gian tên trong ứng dụng Web (tt)

• System.Web.UI– Đối tượng Page và Control. – Sử dụng các lớp này trong một Web form để

tạo và điều khiển giao diện người dùng. Web forms được dựa trên lớp Page

• System.Web.UI.WebControls– Tất cả các đối tượng server control. – Sử dụng các lớp này trong các Web form.

16GV.

Page 9: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

9

Một số không gian tên trong ứng dụng Web (tt)

• System.Web.UI.HTMLControls– Tất cả các đối tượng HTML control. – Sử dụng các lớp này trong Web forms.

• System.Web.Caching– Đối tượng Cache. – Sử dụng các lớp này để điều khiển quá trình

caching trên server để cải thiện tốc độ thực thi ứng dụng

17GV.

Một số không gian tên trong ứng dụng Web (tt)

• System.Web.Mail– Đối tượng MailMessage, MailAttachment, và đối

tượng SmtpMail. – Sử dụng các lớp này để gửi các thông điệp mail

từ ứng dụng web.• System.Web.Security

– Các đối tượng và modun Authentication. – Sử dụng các lớp này để xác nhận người dùng

và cung cấp các cơ chế bảo mật trong ứng dụng web.

18GV.

Page 10: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

10

Assembly• Là các file dll trên đĩa cứng, lưu trữ các lớp

của .NET– Ví dụ: tất cả các lớp trong .ASP.NET Framework đều nằm trong Assembly System.web.dll.

• Trước khi sử dụng các lớp trong dll, cần tạo một tham chiếu đến file dll này – Right click lên thư mục Website trong cửa sổ

Solution Explorer, chọn Add Reference…

Môi trường thực thi ngôn ngữ chung• Commom Language Runtime (CLR): chịu

trách nhiệm thực thi mã nguồn ứng dụng: mã nguồn của ứng dụng .NET được biên dịch thành ngôn ngữ đặc tả của Microsoft (Microsoft intermediate language - MSIL) và chứa trong tập tin gọi là assembly.

• Khi chạy ứng dụng, MSIL sẽ được biên dịch sang mã máy máy bởi JITTER (just in time compiler)

• Trong quá trình thực thi, CLR sẽ tự động thực hiện các tác vụ quản lý bộ nhớ, kiểm tra kiểu dữ liệu, và một số tác vụ khác cho ứng dụng

Page 11: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11

Bài 2. Các điều khiển ASP.NET• Giới thiệu • Các điều khiển server • Các biến cố của các điều khiển • View State

Giới thiệu về các điều khiển ASP.NET

• Là phần quan trọng nhất trong ASP.NET Framework.

• Mỗi điều khiển ASP.NET là một lớp, khi thực thi trên server sẽ được trả về dạng mã HTML hiển thị nội dung trên trình duyệt.

• ASP.NET cung cấp rất nhiều điều khiển có thể sử dụng trong xây dựng ứng dụng web và tổ chức thành các nhóm dựa vào chức năng và bản chất của điều khiển

Page 12: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

12

Các điều khiển server• Standard control: bao gồm các điều khiển

chuẩn như: Label, Button, TextBox…• Validator Control: là các điều khiển được sử

dụng đề kiểm tra tính hợp lệ của dữ liệu nhập trước khi gởi về server

• Rich Control: là những điều khiển như FileUpload, Calendar…

• Data Control là các điều khiển cho phép thao tác với cơ sở dữ liệu

Các điều khiển server (tt)• Navigation Control: là những điều khiển cho

phép di chuyển giữa các trang trong website.• Login control: Là các điều khiển về bảo mật ứng dụng cho phép tạo các form đăng ký, đăng nhập, thay đổi mật khẩu…

• HTML Control: cho phép chuyển các điều khiển HTML thành các điều khiển có thể thực thi trên server.

Page 13: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

13

Các điều khiển server (tt)

View State• View state của Web form là dữ liệu đươc ASP.NET

bảo toàn giữa các yêu cầu của trình duyệt• ASP.NET lưu trữ các thông tin được đưa vào thuộc

tính ViewState của trang dưới dạng các field ẩn trên trang .

• View state chỉ sử dụng được cho từng web form• View State lưu trữ dữ liệu ngay trên trang à chỉ có

một số kiểu đối tượng có thể được lưu. • Muốn lưu trữ các đối tượng phức tạp hơn trong

ViewState à chuyển đổi chúng thành các chuỗi.

Page 14: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

14

View State (tt)• ASP.NET mã hóa các dữ liệu nhập vào các điều khiển thành các field ẩn được lưu trữ trên trang. Nếu ta chọn View Source từ trình duyệt, đoạn mã HTML của trường ẩn có đoạn code sau:

27GV.

View State (tt)• Ví dụ

–Đoạn mã sau cho phép thêm văn bản nhập từ một text box vào các ô của một bảng trên trang Web. • Lưu trữ các chuỗi trong hàm Button1_Click• Tạo ra các ô và dòng trong bảng từ các chuỗi

này, như trình bày trong thủ tục Page_PreRender

Page 15: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

15

View State (tt)

29GV.

Bài 3. Trang ASP.NET• Tạo ứng dụng web trong môi trường VS.Net• Biên dịch động• Trang code-behind• Biến cố mức trang• Thuộc tính Page.IsPosBack

Page 16: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

16

Tạo ứng dụng web • Khởi động VisualStudio 2008• File, New, Web Site

22/10/2012 31

Tạo ứng dụng web

22/10/2012 32

Page 17: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

17

Thêm Trang ASP.NET Vào Web Site

22/10/2012 33

Thêm Trang ASP.NET Vào Web Site

22/10/2012 34

Page 18: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

18

Chọn trang web làm trangmặc định

22/10/2012 35

Biên dịch

22/10/2012 36

Page 19: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

19

Chạy thử trang web

22/10/2012 37

Trang code-behind• Khi một website được tạo, mặc định ứng

dụng sẽ tạo ra một tập tin Default.aspx và một tập tin Default.aspx.cs– Tập tin Default.aspx: cho phép thiết kế các thành

phần giao diện trên Web Form– Tập tin Default.aspx.cs: là một class kết hợp với

tập tin Default.aspx, cho phép viết code một cách độc lập tương tự như ứng dụng Windows Form, thay vì phải viết code trong thẻ <script runat=”sever”/> </script>

Page 20: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

20

Chỉ dẫn của tập tin aspx

22/10/2012 39

Chỉ dẫn của tập tin aspx

22/10/2012 40

Page 21: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

21

Chỉ dẫn của tập tin aspx• Cú pháp:

– <%@ [Directive] [Attribute = Value] %>• Một số chỉ dẫn thường sử dụng

– @Page: chỉ định các ứng xử của trang• CodeFile• Inherits• EnableSessionState• EnableViewState• ErrorPage: url đến trang web khác khi xảy ra lỗi• ValidateRequest: cho phép nhập các giá trị đặc

biệt– @Import: chỉ định không gian tên cần import

vào trang web22/10/2012 41

Các sự kiện trong ứng dụng web• Tập tin ứng dụng Global.asax• Sự kiện mức ứng dụng• Sự kiện mức phiên làm việc• Sự kiện mức trang• Sự kiện các điều khiển server

Page 22: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22

Tập tin ứng dụng Global.asax • Thêm vào ứng dụng tập tin Global.asax

– Từ menu Website, chọn Add New Item, Global Application Class

– Tên mặc định của tập tin: Global.asax• Tập tin Global.asax dùng để:

– Khai báo và khởi tạo giá trị cho các biến Application, Session.

– Viết xử lý cho các sự kiện của 2 đối tượng Application và Session.

43GV.

Sự kiện mức ứng dụng• Sử dụng sự kiện mức ứng dụng để khởi tạo

các đối tượng chung cho tất cả người dùng của ứng dụng web.– Application_Start: Chỉ xảy ra một lần đầu tiên

khi bất kỳ trang nào trong ứng dụng được gọi.– Application_End: Xảy ra khi dừng hoạt động

của WebServer.– Application_Error: Xảy ra khi có lỗi phát sinh

trong quá trình thực thi.– Application_BeginRequest: xảy ra mỗi khi trình

duyệt di chuyển đến một trang của ứng dụng– Application_EndRequest – Kết thúc xử lý yêu

cầu của trình duyệt44GV.

Page 23: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

23

Sự kiện mức phiên làm việc• Sử dụng sự kiện mức phiên làm việc để

khởi tạo các đối tượng được sử dụng chung trong phạm vi một phiên làm việc.– Session_Start: Xảy ra khi có một người dùng

mới yêu cầu đến bất kỳ trang aspx của ứng dụng, một SessionID sẽ được tạo ra và được sử dụng để quản lý người dùng trong quá trình làm việc với ứng dụng.

– Session_End: Xảy ra khi phiên làm việc không có gởi yêu cầu hoặc làm tươi trang aspx của ứng dụng web trong một khoảng thời gian (mặc định là 20 phút).

45GV.

Sự kiện mức trang1. PreInit2. Init3. InitComplete4. PreLoad5. Load6. LoadComplete7. PreRender8. PreRenderComplete9. SaveStateComplete10. Unload

Page 24: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

24

Sự kiện mức trang (tt)• Page_Init: Khởi tạo trang: các điều khiển được khởi tạo và gán giá trị từ view state

• Page_Load: Nạp trang: các điều khiển đã được khởi tạo, gán giá trị và sẵn sàng để sử dụng trong mã lệnh

• Page_PreRender: xảy ra khi trang Web chuẩn bị được trả về cho Client.

47GV.

Sự kiện mức trang (tt)• Page_Unload: Gỡ trang: web form sắp bị

hủy• Page_Disposed: Hủy trang: web form đã bị

hủy.• Page_Error: Trang bị lỗi: có lỗi chưa được

xử lý xảy ra

48GV.

Page 25: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

25

Sự kiện mức trang• Các sự kiện chính thường được sử dụng

của web form là Page_Load và Page_Error• Có thể kết hợp thuộc tính IsPostBack với sự

kiện Page_Load để khởi tạo các đối tượng cho web form trong lần đầu tiên (tương tự như Session_Start nhưng ở mức trang)

49GV.

Thuộc tính IsPostBack• Là thuộc tính chỉ đọc của lớp Page, kiểu

luận lý• Cho biết trạng thái của trang web khi được

load: Load lần đầu -> IsPostBack = false• Ví dụ:

private void Page_Load(object sender,System.EventArgs e) {

if( ! IsPostBack) { // init …

} }

50GV.

Page 26: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

26

Sự kiện các điều khiển Server• Các điều khiển Server, như Button, TextBox,

DropDownList … có các sự kiện riêng của mình, các sự kiện này xảy ra trong quá trình tương tác với người dùng (tương tự trong windows form).

• Có 3 loại sự kiện điều khiển server: – Sự kiện post-back:

• Làm trang web được gửi về server xử lý ngay lập tức. • Ảnh hưởng đến tốc độ xử lý.

– Sự kiện cached• Được lưu lại trong view state và sẽ được xử lý khi có một sự

kiện post-back.– Sự kiện kiểm chứng.

• Được xử lý ngay tại phía client mà không cần post-back. Chủ yếu sử dụng bới các điều khiển kiểm chứng dữ liệu

51GV.

Sự kiện các điều khiển Server (tt)• Các điều khiển Button, Link Button, và

Image Button tạo ra các sự kiện post-back.

• Các điều khiển TextBox, DropDownList, ListBox, RadioButton, và CheckBox tạo ra các sự kiện cached.

• Tuy nhiên, ta có thể thay đổi điều này bằng cách thay đổi thuộc tính AutoPostBack của các điều khiển.

52GV.

Page 27: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

27

Trình tự xử lý sự kiện các điều khiển Server

53GV.

Bài 4. Các trạng thái ứng dụng• Vòng đời của ứng dụng web• Vòng đời của webform• Các mức trạng thái của ứng dụng

– Query String– Cookie– Session– Profile

Page 28: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

28

Vòng đời của ứng dụng web• Khi người dùng đóng trình duyệt hoặc

chuyển sang một web site khác, session của người dùng kết thúc.

• Nếu không tồn tại session của người dùng nào, ứng dụng web sẽ kết thúc.

• Lưu ý: Điều này không xảy ra tức thời do cơ chế quản lý bộ nhớ của ASP.NET. Do đó không thể nói chính xác khi nào sự kiện Application_End xảy ra

55GV.

Vòng đời của ứng dụng web (tt)

56GV.

Page 29: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

29

Vòng đời của webform• Khi người dùng yêu cầu một trang web, trình

duyệt hiển thị mã HTML nhận được, người dùng có thể tương tác với các điều khiển như gõ vào textbox, lựa chọn trong listbox,… cho đến khi thực hiện tác vụ làm phát sinh sự kiện post-back (nhấn vào button,…)

• Sự kiện post-back khiến trình duyệt gửi lại dữ liệu của trang (dưới dạng view state) về cho server.

Vòng đời của webform (tt)• Sau khi nhận được view state, server sẽ khởi

tạo phiên bản mới của web form, đổ dữ liệu từ view state vào web form, sau đó thực hiện việc xử lý các sự kiện đã phát sinh.

• Sau khi xử lý xong, server sẽ trả kết quả lại cho trình duyệt dưới dạng HTML và hủy phiên bản vừa tạo ra của web form.

Page 30: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

30

Vòng đời của webform (tt)

Cách bảo toàn dữ liệu trên Webform

• Web forms được tạo ra và được huỷ tại mỗi thời điểm mà trình duyệt trên máy khách tạo ra một yêu cầu

• Do đó, các giá trị biến bên trong Web form không giữ lại giá trị của chúng sau khi trang Web được hiển thị

• Để giải quyết vấn đề này. ASP.NET cung cấp một số cách thức để giữ lại giá trị các biến giữa các yêu cầu

60GV.

Page 31: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

31

Query strings• Chuyển thông tin giữa các yêu cầu và phản

hồi thông qua một phần của địa chỉ Web .• Query strings có thể nhìn thấy được bởi

người sử dụng, vì vậy chúng không nên chứa các thông tin bảo mật như mật khẩu.

• Gửi một query string bằng cách thêm nó vào địa chỉ của phương thức Redirect

61GV.

Query strings (tt)• Gởi query string

62GV.

Page 32: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

32

Query strings (tt)• Để nhận thông tin từ query string trong mã

lệnh, sử dụng phương thức QueryString của đối tượng Request

63GV.

Cookies• Lưu trữ các thông tin đơn giản trên máy client• Các máy client có thể không chấp nhận

cookie, do đó cần kiểm tra trước khi sử dụng. • Khi trình duyệt web tạo một Cookie, một nội

dung sẽ được lưu vào header của trang web với nội dung có dạng:Set-Cookie: Message = value

• Phần tiêu đề Set-Cookie này yêu cầu trình duyệt web tạo một Cookie có tên là Message coq giá trị là value.

Page 33: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

33

Cookies• Sau khi một Cookie được tạo trên trình

duyệt, mỗi khi trình duyệt yêu cầu một trang web trong ứng dụng, trình duyệt sẽ gửi một header có dạng :Cookie: Message = value

• Tiêu đề Cookie chứa đựng tất cả các Cookie được tạo trên Web Server. Cookie được gửi trở lại mỗi khi một yêu cầu được đưa ra trên trình duyệt web.

Cookies (tt)• Có hai loại cookie:

– Session cookies chỉ tồn tại khi trình duyệt web còn làm việc, và bị hủy khi đóng trình duyệt web

– Persistent Cookies: có thể tồn tại khá lâu. Khi một Persistent Cookies được tạo, nó sẽ được lưu trữ trên một tập tin trên máy tính.

Page 34: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

34

Cookies (tt)• Tạo cookie: theo cú pháp

– Response.Cookies[“CookieName"].Value = “value”;

hoặc– HttpCookie cook =

new HttpCokkie (“CookieName”);cook.Value = “value”;

• Kiểm tra xem một trình duyệt có cho phép cookies hay không:– if ( Request.Browser.Cookies) { //do…}

Cookies (tt)

68GV.

Page 35: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

35

Cookies (tt)• Lấy giá trị từ cookies

– Response.Cookies[“CookieName"].Value

69GV.

Cookies (tt)• Cookies đa trị

– Có thể lưu trữ nhiều giá trị trong một cookie bằng cách sử dụng bộ [Name] [Value] được gọi là khóa.

– Để tạo một Persistent Cookies, ta chỉ định thời hạn kết thúc cho Cookies:aCookie.Expires = DateTime.Now.AddDays(2);

– Ví dụ: Thay vì tạo ra hai tập tin cookie riêng biệt có tên là userName và lastVisit,ta có thể tạo ra một cookie đơn đặt tên UserInfo và có hai giá trị là userName, lastVisit.

70GV.

Page 36: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

36

Cookies (tt)• Cookies đa trị (tt)

71GV.

Cookies (tt)

• Xóa Cookies:

72GV.

Page 37: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

37

Application, Session state• Application state

– Lưu trữ các thông tin chung cho tất cả các người sử dụng

• Session state – Lưu trữ các thông tin riêng biệt cho phiên làm

việc hiện hành (riêng cho một người dùng).– Session cho phép lưu trữ dữ liệu với khối lượng

lớn, điều này không được cho phép khi sử dụng Cookies

Application, Session state (tt)• Các biến trạng thái Application và Session được tạo ra một cách tức thời, mà không kiểm tra tên biến hoặc kiểm tra kiểu dữ liệu. Ta nên giới hạn các điểm truy xuất đến các biến này.

• Duy trì trạng thái Session ảnh hưởng đến tốc độ xử lý. Nó có thể được tắt đi ở mức ứng dụng hoặc mức trang

• Ví dụ: sử dụng biến Application và Session để lưu số lượng người truy cập website

74GV.

Page 38: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

38

Sử dụng Session• Lưu dữ liệu vào session:

– Cú pháp: Session[“session_name”]=value;– VD: Session[“uname”] = “my name”;

• Lấy dữ liệu từ session:– Kiểm tra sự tồn tại của session – Lấy dữ liệu từ session và chuyển đổi về kiểu dữ

liệu hợp lệ– VD:

if (Session[“uname”]!=null)string username=Session[“uname”].ToString();

Sử dụng Session (tt)• Hủy session:

– Abandon: Kết thúc Session của một người dùng.– Clear: Cho phép xoá toàn bộ dữ liệu trong Session State.– Remove: cho phép xoá từng phần tử trong Session State

• Một số thuộc tính thường dùng của lớp HttpSessionState – SessionID: giá trị nhận dạng session– Timeout: thời gian kết thúc một seesion– cookieless

• AutoDetect: SessionID được lưu trữ trong một cookie khi trình duyệt có cho phép Cookie, ngược lưu trữ vào địa chỉ URL.

• UseCookies: Session ID luôn luôn lưu trữ trong cookie• UseUri: Session ID luôn luôn được thêm vào URL

Page 39: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

39

Thiết lập thời gian cho Session• Mặc định, ASP.Net duy trì trạng thái session

là 20 phút, ta có thể thay đổi giá trị này bằng cách cấu hình trong trang web.config – <sessionState mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20“ />

• Để tắt session:– <sessionstate mode="False" …>

Profile• Được dùng để thay thế cho Session hoặc

cookie để lưu trữ thông tin của người sử dụng

• Tạo Profile bằng cách định nghĩa một danh sách các thuộc tính Profile trong ứng dụng ờ trang web.config trong thư mục website

Page 40: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

40

Profile (tt)• Một số thuộc tính

– Name: tên của thuộc tính.– Type: kiểu dữ liệu của thuộc tính– Defaultvalue: giá trị mặc định của thuộc tính– ReadOnly: tạo thuộc tính chỉ đọc– allowAnonnyMous: cho phép người dùng nặc

danh đọc và thiết lập thuộc tính– Provider: kết hợp thuộc tính với một Profile

Provider riêng biêt – …

Profile (tt)• Sử dụng Profile

– Lấy dữ liệu từ Profile:txtUserName.Text = Profile.UserName

– Cập nhật dữ liệu vào Profile:Profile.NumberOfVisits++;Profile.UserName = txtUserName.Text;

Page 41: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

41

Profile (tt)

Profile (tt)• Tạo nhóm Profile

– Khi cần định nghĩa nhiều thuộc tính của Profile, có thể tạo va quản lý thành các nhóm (groups)

Page 42: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

42

Profile (tt)• Sử dụng nhóm Profile

– Truy xuất thông qua group name:Profile.GroupName.Name

Profile (tt)• Tạo Profile phức tạp:

– Có thể tảo Profile để lưu trữ các dữ liệu phức tạp như danh sách, một bảng trong cơ sở dữ liệu

Page 43: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

43

Profile (tt)

Profile (tt)

Page 44: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

44

Profile (tt)• Lớp ProfileManager

– Được sử dụng để quản lý các profile, tìm kiếm profile, hay xóa các profile không còn sử dụng.

– Lớp ProfileManager cung cấp các phương thức static và các thuộc tính có thể được truy cập bằng cách tham chiếu các đối tượngProfileManager trong mã lệnh.

– Mặc định các user profile bị vô hiệu hóa, để kích hoạt, ta cấu hình trong web.config như sau:<profile enabled="true" />

Profile (tt)• Lớp ProfileManager

– Một số phương thức• DeleteProfile: xóa một profile• GetAllProfiles: trả về tất cả profile trong data source

Ví dụprivate void GetProfiles() {

ProfileGrid.DataSource = ProfileManager.GetAllProfiles(

ProfileAuthenticationOption.All); ProfileGrid.DataBind();

}

Page 45: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

CHƯƠNG IICHƯƠNG II

CCáác đic điềều khiu khiểển chun chuẩẩn vn vààkikiểểm chm chứứngng

2

MMụục tiêuc tiêu• Sau khi học xong chương này, sinh viên có

thể:– Hiểu ý nghĩa, vai trò của các thuộc tính và biến

cố trong các điều khiển chuẩn.– Hiểu ý nghĩa, vai trò của các thuộc tính và biến

cố trong các điều khiển kiểm chứng.– Sử dụng được các điều khiển chuẩn để tạo

giao diện người dùng (nhập, xuất, liên kết, thực thi) cho ứng dụng Web.

– Thực hiện được các kiểm chứng dữ liệu trước khi xử lý chúng.

Page 46: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

3

NNộội dungi dung• Bài 1: Các điều khiển chuẩn• Bài 2: Các điều khiển kiểm chứng dữ liệu

4

BBàài 1: Ci 1: Cáác đic điềều khiu khiểển chun chuẩẩnn• ASP.Net cung cấp nhiều control tạo các

trang web động và tương tác với người sửdụng.

• Các control chấp nhận mô hình lập trình phía server mà người sử dụng ở phía client tương tác với server control để phát sinh các sự kiện sẽ xử lý phía server.

• Khi trang được yêu cầu các server control được biên dịch và thực thi trên server.

Page 47: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

5

SSựự khkháác nhau gic nhau giữữa Server a Server Controls vControls vàà HTML ControlsHTML Controls

• HTML controls không có bất kỳ tương tác nào với server sau khi chúng hiển thị về trên trang.

• Còn Server Controls cho phép truy cập các phương thức, các thuộc tính, các sự kiện tại phía Server.

6

Thêm cThêm cáác server control c server control lên Formlên Form

• Thêm các server control lúc thiết kế hoặc lúc chạy.

• Thêm lúc thiết kế có thể dùng Toolbox hoặc ở chế độ HTML của trang .aspx

• Có thể thêm lúc chạy bằng việc dùng thẻ<Script> trong trang .aspx hoặc file code behind.

Page 48: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

7

DDùùng Toolboxng Toolbox• Toolbox phân loại các control thành các

nhóm thuận tiện cho việc truy cập

8

DDùùng ng ởở chchếế đ độộ hihiểển thn thịị HTML HTML • Có thể thêm server control bằng cách chỉ định code ASP.Net trực tiếp trong chế độhiển thị HTML của file .aspx.<asp:TextBox id = "MyTextBox" runat = "server" Text = "Greetings"></asp:TextBox>

Page 49: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

9

DDùùng trong code behindng trong code behind• ASP.Net cho phép thêm các server control

lúc chạy• Ví dụ: tạo động một textbox:

TextBox tb = new TextBox();tb.ID = "txtUser“;tb.Text = "“;Panel1.Controls.Add(tb)

10

ThiThiếết lt lậập thup thuộộc tc tíính cho nh cho server controlserver control

• Các server control có các thuộc tính thông dụng kế thừa từ lớp cơ sở WebControl.

• Có thể thiết lập thuộc tính lúc thiết kế hoặc khi thực thi.

• Thiết lập thuộc tính của control lúc thiết kếsử dụng cửa sổ Properties

Page 50: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

11

ThiThiếết lt lậập thup thuộộc tc tíính chonh choserver controlserver control

• Có thể thiết lập các thuộc tính của WebControl trực tiếp trong chế độ hiển thịHTML.<asp:TextBox Id = "Text_Box" runat = "server" Enabled =

False></asp:TextBox>

• Thiết lập thuộc tính khi thực thi– Cú pháp : ControlID.PropertyName = Value;

Ví dụ: txtUser.Enabled = True;

12

MMộột st sốố thuthuộộc tc tíính, pnh, phương thhương thứức, c, ssựự kikiệện cn củủa server controlsa server controls

Property/Method/Event Mô tảDataBinding event Phát sinh khi control chuẩn bị

tương tác với DataSourceEnabled property Chấp nhận gt Bool chỉ định khi

nào control được enabledEnableViewState property Giá trị Bool chỉ định control có

duy trì trạng thái khi hiển thịFont property Get hoặc Set Font

ForeColor property Get hoặc Set màu chữ

Height property Get hoặc Set chiều cao control

Page 51: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

13

MMộột st sốố thuthuộộc tc tíính, pnh, phương thhương thứức, c, ssựự kikiệện cn củủa server controlsa server controls

Property/Method/Event Mô tảID property Get hoặc Set nhận biết

controlTabIndex property Get hoặc Set TabIndex

ToolTip property Get hoặc Set ToolTip

Visible property Chỉ định control hiển thị hoặc không hiển thịtrên UI

Width property Get hoặc Set độ rộng

14

CCáác nhc nhóóm đim điềều khiu khiểển chun chuẩẩnn• Điều khiển hiển thị dữ liệu• Điều khiển nhập dữ liệu• Điều khiển gởi trang web đến Server• Điều khiển hiển thị hình ảnh• Điều khiển khác

– Panel– Hyperlink– FileUpload– Calendar

Page 52: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

15

ĐiĐiềều khiu khiểển hin hiểển thn thịị ddữữ liliệệuu• Điều Khiển Label• Điều Khiển Literal

16

LabelLabel• Label thường được sử dụng để hiển thị và

trình bày chuỗi trên trang web. • Nội dung được hiển thị trong label được xác định thông qua thuộc tính Text.

• Thuộc tính Text có thể nhận và hiển thị nội dung với các tag HTML.

• Ví dụ. lbNormal.Text=“normal text”;lbBold.Text =“<b>bold text</b>”;

Page 53: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

17

LiteralLiteral• Điều khiển Literal tương tự như Label, dùng để hiển thị và trình bày chuỗi trên trang web.

• Điểm khác nhau giữ Literal và Label:– Khi kết xuất ra trình duyệt, điều khiển Literal

không tạo ra thẻ HTML, còn Label tạo ra thẻ <span>

– Điều khiển Literal không có các thuộc tính (Properties) định dạng như Label.

18

Label vLabel vàà LiteralLiteral

Page 54: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

19

ĐiĐiềều khiu khiểển nhn nhậập dp dữữ liliệệuu• Điều KhiểnTextBox• Điều khiển CheckBox• Điều khiển RadioButton

20

TextBoxTextBox• TextBox là điều khiển được dùng để nhập

dữ liệu• TextBox thường được sử dụng nhiều với

các ứng dụng trên windows form.• Các thuộc tính quan trọng:

– TextMode:• SingleLine: chứa 1 dòng văn bản• MultiLine: chứa nhiều dòng văn bản• Hiển thị dấu * thay cho các ký tự có trong TextBox.

Page 55: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

21

TextBoxTextBox• Các thuộc tính quan trọng:

– Rows: qui định số dòng văn bản được hiển thị (trường hợp TextMode = MultiLine)

– MaxLength: số ký tự tối đa được nhập vào TextBox (MaxLength = 0: không giới hạn)

– Wrap: cho phép hay không văn bản tự động xuống dòng khi kích thước ngang của của điều khiển không đủ để hiển thị dòng nội dung văn bản, mặc định Wrap = True (tự động xuống dòng)

22

TextBoxTextBox• Các thuộc tính quan trọng:

– AutoPostBack: qui định điều khiển có được phép tự động PostBack về Server khi nội dung trong Textbox bị thay đổi hay không, mặc định AutoPostBack = False (không tự động Postback)

Page 56: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

23

CheckBoxCheckBox• Các thuộc tính:

– Checked: trạng thái của CheckBox (chọn hay không chọn)

– TextAlign: vị trí hiển thị của điều khiển so với chuỗi văn bản.

– AutoPostBack: mặc định là false.

24

CheckBoxCheckBox• Sự kiện:

– CheckedChanged: là sự kiện mặc định, xảy ra khi có thay đổi lựa chọn từ CheckBox. Biến cốnày chỉ xảy ra khi AutoPostBack = true.

Page 57: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

25

RadioButtonRadioButton• Các thuộc tính: (tương tự CheckBox)

– GroupName (RadioButton): Tên nhóm, được sửdụng để nhóm các điều khiển RadioButton lại thành 1 nhóm -> chỉ cho phép người sử dụng chọn một trong các tùy chọn

26

ĐiĐiềều khiu khiểển gn gởởi trang Web đi trang Web đếến n ServerServer

• Là các Submit Button, mỗi khi được nhấn vào sẽ PostBack về Server.

• Điều Khiển Button • Điều Khiển LinkButton • Điều Khiển ImageButton• Biến cố Command.

Page 58: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

27

ButtonButton• Các thuộc tính

AccessKey Chỉ định phím di chuyển tới điều khiển Button.

CommandArgument Chỉ rõ đối số được truyền tới lệnh thực hiện.

CommandName Chỉ định tên một lệnh được truyền tới trong Command Event.

OnClientClick Chỉ định đến một hàm phía client khi nhấn vào Button.

PostBackUrl Url trang khi có PostBack về Server

28

ButtonButton

Page 59: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

29

LinkButton, ImageButtonLinkButton, ImageButton• Tương tự điều khiển Button nhưng kết xuất

trên trình duyệt khác nhau– Button: thẻ <input >– LinkButton: thẻ <a>– ImageButton: thẻ <input type=“image”>

• LinkButton– PostbackUrl: liên kết đến một địa chỉ trang web

• ImageButton: – ImageUrl: liên kết file ảnh hiển thị trên button

30

LinkButton, ImageButtonLinkButton, ImageButton

Page 60: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

31

ĐiĐiềều khiu khiểển hin hiểển thn thịị hhìình nh ảảnhnh• Điều Khiển Image • Điều Khiển ImageMap

32

ĐiĐiềều khiu khiểển Imagen Image• Dùng để hiển thị ảnh giống với thẻ <Img>

trong HTML• Các thuộc tính:

AlternateText Chuỗi thay thế khi lỗi đường dẫn của ảnh

ImageUrl Đường dẫn của ảnh hiển thị

Page 61: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

33

ĐiĐiềều Khiu Khiểển ImageMapn ImageMap• Cho phép tạo ra các liên kết ứng với từng

vùng ảnh trên hình ảnh• Các thuộc tính:

HotSpots Tập hợp các vùng ảnh và liên kết

ImageUrl Đường dẫn của ảnh hiển thị

34

ĐiĐiềều Khiu Khiểển ImageMapn ImageMap• Tạo các vùng ảnh

Page 62: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

35

CCáác đic điềều khiu khiểển khn kháácc• Điều Khiển Panel• Điều Khiển HyperLink• Điều Khiển FileUpload • Điều Khiển Calendar

36

ĐiĐiềều khiu khiểển Paneln Panel• Được sử dụng để chứa các điều khiển

khác.• Các thuộc tính:

BackImageUrl Đường dẫn file ảnh nền

GrouppingText Chuỗi hiển thị trên khung

ScrollBars Thanh cuộn

Page 63: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

37

ĐiĐiềều Khiu Khiểển Hyperlinkn Hyperlink• Được sử dụng để tạo ra các liên kết siêu

văn bản.• Các thuộc tính:

NavigateUrl Đường dẫn cần liên kết đến

Target Kiểu cửa sổ trang liên kết

ImageURL Chỉ định url ảnh hiển thị

Text Chuỗi hiển thị

38

ĐiĐiềều Khiu Khiểển FileUploadn FileUpload• Cho phép người sử dụng chọn tập tin từ

máy client để tải lên server

Page 64: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

39

ĐiĐiềều Khiu Khiểển Calendarn Calendar• Cho phép hiển thị thời gian (ngày, tháng,

năm) với nhiều định dạng khác nhau.• Các thuộc tính:

40

ĐiĐiềều Khiu Khiểển Calendarn Calendar• Các thuộc tính:

– SelectedDate: ngày được chọn trên Calendar• Sự kiện:

– SelectionChanged: sự kiện mặc định, xảy ra khi có sự thay đổi chọn trên Calendar

Ví dụ: Label1.Text =Calendar1.SelectedDate.ToLongDateString();

Page 65: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

41

BBàài 2i 2. . ĐiĐiềều khiu khiểển kin kiểểm chm chứứng dng dữữ liliệệuu

• Giải thích cơ chế kiểm chứng dữ liệu của ASP.NET

• Kiểm chứng dữ liệu được nhập bằng theo một số tiêu chuẩn khác nhau

• Hiển thị thông báo lỗi kiểm chứng dữ liệu• Tạo các tiêu chuẩn kiểm chứng dữ liệu của

riêng mình

42

KhKháái nii niệệm kim kiểểm chm chứứng dng dữữ liliệệuu• Quá trình kiểm chứng kiểm tra tính hợp lệ

của dữ liệu được nhập vào các điều khiển trên web form ở phía client, trước khi trang được gửi về server để xử lý.

• Quá trình kiểm chứng phía client được thực hiện bởi các đoạn mã của thư viện JScript tên là WebUIValidation.js

• Thư viện này được tải về phía client một cách riêng rẽ

Page 66: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

43

KhKháái nii niệệm kim kiểểm chm chứứng dng dữữ liliệệuu• Quá trình kiểm chứng dữ liệu sau đó luôn

luôn được thực hiện ở phía server• Cơ chế này nhằm đảm bảo quá trình kiểm

chứng dữ liệu luôn được thực hiện chính xác (do thư viện JScript có thể không được hỗ trợ đầy đủ bởi các trình duyệt khác)

44

SSửử ddụụng cng cáác đic điềều khiu khiểển KCDLn KCDL1.Vẽ điều khiển kiểm chứng trên web form2.Thiết lập thuộc tính ControlToValidate là điều khiển cần kiểm chứng

3.Thiết lập thuộc tính ErrorMessage thành thông báo lỗi nếu dữ liệu không hợp lệ

4.Thiết lập thuộc tính Text để hiển thị thông báo lỗi ngắn gọn (khi đó thông báo đầy đủlà ErrorMessage sẽ hiển thị trong điều khiển ValidationSummary).

Page 67: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

45

SSửử ddụụng cng cáác đic điềều khiu khiểển KCDLn KCDL5. Đưa điều khiển ValidationSummary để hiển

thị các lỗi kiểm chứng tại một vị trí tập trung.

6. Đưa một điều khiển post-back (như Button) vào web form. Quá trình kiểm chứng dữliệu chỉ xảy ra khi có yêu cầu post-back.

46

Thuộc tính Page.IsValid• Thuộc tính Page.IsValid kiểm tra xem form đã

thỏa các Validation Control hay không.• Trả về true nếu không có lỗi xảy ra, ngược lại

trả về false

Page 68: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

47

Các nhóm kiểm chứng• RequiredFieldValidator: Kiểm tra xem điều

khiển có chứa dữ liệu không• CompareValidator: Kiểm tra xem dữ liệu đưa vào một điều khiển này có phù hợp với dữ liệu đưa vào một điều khiển khác hay không

• RangeValidator: Kiểm tra xem dữ liệu đưa vào có nằm trong khoảng hai giá trị cho trước không

48

Các nhóm kiểm chứng (tt)(tt)• RegularExpressionValidator: Kiểm tra xem

dữ liệu đưa vào có tuân thủ theo định dạng cho trước không

• CustomValidator: Kiểm tra dữ liệu đưa vào theo quy tắc riêng

• ValidationSummary: Hiển thị một cách tập trung các lỗi, thông báo kiểm chứng dữ liệu

Page 69: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

49

Hủy bỏ kiểm chứng• Các bước hủy bỏ kiểm chứng

– Tạo một Button dạng:<asp:Button ID="btnRemove"

CommandName="Delete" runat="server" CausesValidation="false"OnClientClick="javascript:Page_ValidationActive = false;"

/>

50

RequiredFieldValidatorRequiredFieldValidator• Kiểm tra xem điều khiển có chứa dữ liệu

hay không• Các thuộc tính:

ControlToValidate Điều khiển được kiểm tra

ErrorMessage Chuỗi thông báo khi kiểm tra có lỗi (khi điều khiển không chứa dữ liệu)

Page 70: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

51

CompareValidatorCompareValidator• Kiểm tra xem dữ liệu đưa vào một điều

khiển này có phù hợp với dữ liệu đưa vào một điều khiển khác hay không

• Các thuộc tính:ControlToValidate Điều khiển được kiểm tra

ControlToCompare Điều khiển được so sánh với điều khiển được kiểm tra

52

RangeValidatorRangeValidator• Kiểm tra xem dữ liệu đưa vào có nằm trong

khoảng hai giá trị cho trước không• Các thuộc tính:

MinimumValue Giá trị nhỏ nhất trên điều khiển được kiểm chứng

MaximumValue Giá trị lớn nhất trên điều khiển được kiểm chứng

Type Kiểu dữ liệu trên điều khiển được kiểm chứng

Page 71: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

53

RegularExpressionValidatorRegularExpressionValidator• Kiểm tra xem dữ liệu đưa vào có tuân thủ

theo định dạng cho trước không • Thuộc tính ValidatorExpression: quy định

mẫu nhập liệu

54

RegularExpressionValidatorRegularExpressionValidator• [các kí tự] : kí tự nhập phải khớp với một

trong các kí tự giữa [ ]• [^các kí tự]: kí tự nhập phải khác với các kí

tự giữa [ ]• \w: kí tự nhập là kí tự bất kỳ.• \W: kí tự nhập là khoảng trắng [\t\n\r\f\v]• \s: kí tự nhập phải khác khoảng trắng

[^\t\n\r\f\v]• \d: kí tự nhập là kí tự số [0-9]

Page 72: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

55

RegularExpressionValidatorRegularExpressionValidator• \D: kí tự nhập phải khác kí tự số [^0-9]• {n,m}: các mục đứng trước được lặp từ n đến m lần.

• {n,}: các mục đứng trước được lặp >=n lần.• {n}: các mục đứng trước được lặp đúng n

lần• ? : các mục đứng trước được lặp 0 -1 lần • + : các mục đứng trước được lặp 1 lần• * : các mục đứng trước được lặp ít nhất 1

lần

56

RegularExpressionValidatorRegularExpressionValidator• Ví dụ 1: kiểm chứng dd/MM/yy

– ((0[1-9])|([1-2][0-9])|(3[0-1])): ngày từ 01-31– ((0[1-9])|(1[0-2])): tháng từ 1-12– [0-9]{2}: năm

• Ví dụ 2: [0-9]{3}-[0-9]{3}\s[0-9]{4}– [0-9] nhận tất cả các số 0-9– {3} yêu cầu 3 số được nhập cho phần đầu tiên– - là dấu bắt nhập– \s chỉ định một khoảng trắng

Page 73: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

57

CustomValidatorCustomValidator• Thực hiện các kiểm chứng phức tạp không được cung cấp bởi các control kiểm chứng bằng cách sử dụng control CustomValidator và viết các đoạn mã để thực hiện việc kiểm chứng trên server và (có thể có) trên client

• Ví dụ: kiểm tra một số nhập vào có phải làsố nguyên tố hay không– Ở phía server, đoạn mã kiểm chứng nằm trong

hàm sự kiện ServerValidate . Các tham số của hàm này cung cấp khả năng truy cập đến các control cần kiểm chứng.

58

CustomValidatorCustomValidator

Page 74: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

59

CustomValidatorCustomValidator• Ở phía Client, chỉ ra các script kiểm chứng trong

thuộc tính ClientValidationFunction của CustomValidator.

60

ValidationSummaryValidationSummary

• Hiển thị các lỗi kiểm chứng ở một vị tríchung

• Thuộc tính ErrorMessage của các kiểm chứng được hiển thị trong control ValidationSummary

• Thuộc tính Text của các điều khiển kiểm chứng hiển thị trên điều khiển kiểm chứng

Page 75: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

61

Tự tạo điều khiển kiểm chứng • Có thể tạo ra một điều khiển kiểm chứng

bằng cách tạo một lớp dẫn xuất từ lớp cơ sởBaseValidator.

• BaseValidator là lớp cơ sở của tất cả các điều khiển kiểm chứng, đây là lớp abstract, do đó, các lớp dẫn xuất phải thực thi phương thức:– EvaluateIsValid: trả về true nếu kiểm chứng thành

công

62

Tự tạo điều khiển kiểm chứng • Ngoài ra, có thể định nghĩa lại một số phương

thức khác của lớp này như:– GetControlValidationValue: cho phép lấy giá trị

của các control được kiểm chứng• Khi tạo một điều khiển kiểm chứng, ta phải định

nghĩa lại phương thức EvaluateIsValid(), và bên trong phướng thức này, gọi GetControlValidationValue để lấy giá trị từ control được kiểm chứng

• Ví dụ: tạo một LengthValidator Control để kiểm tra độ dài dữ liệu nhập trên một TextBox

Page 76: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GV. Nguyễn Thị Mai Trang

63

Tự tạo điều khiển kiểm chứng (tt)

64

Tự tạo điều khiển kiểm chứng (tt)

Page 77: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

ChươngChương 3: 3: NgônNgôn ngngữữ PHPPHP

Mục tiêu

• Sau khi học xong chương này, sinh viên cóthể:– Hiểu và sử dụng đúng các kiểu dữ liệu, toán tử,

các cấu trúc, hàm, mảng – Hiểu cơ chế xử lý form của PHP.– Sử dụng được PHP và HTML để thiết kế các trang

Web

Page 78: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

NNộộii dungdung• Giới thiệu.• Cấu trúc và cú pháp.• Hằng và biến.• Các kiểu dữ liệu.• Các toán tử• Cấu trúc lựa chọn.• Cấu trúc lặp• Hàm• Mảng• Truyền biến giữa các trang• Truyền thông tin bằng form

1. 1. GiGiớớii thithiệệuu PHPPHP

• Giới thiệu PHP• Cài đặt• Lập trình PHP

Page 79: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

GiGiớớii thithiệệuu PHPPHP

• PHP (Personal Home Page) ra đời năm1994 do phát minh của Rasmus Lerdorf

• PHP bắt đầu được sử dụng trong môitrường chuyên nghiệp và trở thành chữ viếttắt của Hypertext Preprocessor.

• PHP là ngôn ngữ mã nguồn mở, là kịch bảntrình chủ (server script) chạy trên phíaserver (server side).

GiGiớớii thithiệệuu PHPPHP

• Cho phép xây dựng ứng dụng web với cáccơ sở dữ liệu mySQL, Oracle, SQL Server…

• PHP là công nghệ phía server (server-side), không phụ thuộc vào môi trường (cross-platform), có thể sử dụng được trên nhiềuhệ điều hành: Unix, Lunix, Windows…

• Do PHP dễ học, thời gian tạo các trang Web động tương đối ngắn hơn so với các ngônngữ khác nên PHP đã nhanh chóng trởthành một ngôn ngữ lập trình Web phổ biến

Page 80: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCààii đđặặtt PHPPHP

• Download PHP ở địa chỉ: http://php.net/downloads.php (phiên bản mớinhất là 5.4.7

• Download tài liệu tham khảo : http://www.php.net/docs.php

• Cài đặt cấu hình WebServer và database (IIS, Apache hoặc PhpAdmin,….)

• Hiện nay, các lập trình viên thường sử dụngcác PHP framework để xây dựng ứng dụngweb. (Zend, Prado, CakePHP,…)

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS Windows 7:– Giải nén gói PHP, ra một thư mục nào đó (ví dụ

C:\php5) – Đổi tên file php.ini-recommendedthành php.ini– Mở php.ini, thay đổi các thông số sau:

• cgi.force_redirect = 0• cgi.fix_pathinfo = 1• fastcgi.impersonate = 1• extension_dir = "C:\php5\ext“

– Copy file php.ini trên vào thư mục C:\Windows,file php5ts.dll vào thư mục C:\Windows\System32

Page 81: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS:– Vào Control Panel / Programs / Turn Windows

Features on or off, check vào các mục chọn nhưhình

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS:– Mở IIS: Control Panel, System and Security,

Administrative Tools hoặc search inetmgr– Click lên thư mục Default Website– Double click lên biểu tượng Handler Mappings– Bên cửa sổ Action, chọn Add Module Mapping…

Page 82: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS (tt)

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS (tt)– Nhập các thông số như sau

Page 83: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCààii đđặặtt PHPPHP

• Cài đặt cấu hình PHP trên IIS (tt)– Tạo thư mục ảo chứa mã nguồn các trang php– Thực thi trang php trên trình duyệt:

• http://localhost/php/bt9.php

CCấấuu trtrúúcc vvàà ccúú phpháápp ccủủaa PHPPHP

• Cấu trúc trang PHP:– Trang PHP là sự phối hợp của các thẻ HTML và

PHP– Lệnh PHP nằm trong cặp thẻ mở <? Và đóng ?>– Ví dụ

Page 84: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc vvàà ccúú phpháápp ccủủaa PHPPHP• Cú pháp PHP tương tự ngôn ngữ C• Một số lưu ý:

– Cuối câu lệnh có dấu ;– Mỗi phương thức đều bắt đầu { và đóng bằng

dấu }– Ghi chú (comment):

• Sử dụng ký hiệu // hoặc # để giải thích cho mỗi câughi chú

• Sử dụng /* và */ cho mỗi đoạn ghi chú

HHằằngng• Khai báo và sử dụng hằng

– Sử dụng phát biểu define để khai báo hằng– Ví dụ: define (“MAX” , 100);

Page 85: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

HHằằngng

• Kiểm tra hằng: sử dụng hàm defined đểkiểm tra sự tồn tại của hằng

• Ví dụ:

BiBiếếnn

• Khai báo: sử dụng tiền tố $ trước tên biến. • Khai báo biến không có kiểu dữ liệu• Khai báo biến có phân biệt chữ hoa hay

thường• Nên gán giá trị khởi đầu cho biến lúc khai

báo• Cú pháp: $variablename [=initial value]; • Ví dụ:

Page 86: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

BiBiếếnn ((tttt))

• Tầm vực của biến. – Biến khai báo bên ngoài hàm thì sẽ có

tầm vực trong trang PHP– Biến khai báo trong hàm thì chỉ có hiệu

lực trong hàm–Để sử dụng biến toàn cục trong hàm, sử

dụng từ khóa global.

BiBiếếnn ((tttt))

Page 87: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

KiKiểểuu ddữữ liliệệuu

• Boolean • Integer• Float• String• Object• Array

KiKiểểuu ddữữ liliệệuu ((tttt))• Thay đổi kiểu dữ liệu

– Ép kiểu (như ngôn ngữ C)– Sử dụng hàm settype– Hàm gettype: trả về kiểu của biến

Page 88: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

KiKiểểuu ddữữ liliệệuu ((tttt))

• Kiểm tra kiểu dữ liệu– is_array, is_bool, is_double, is_float,

is_integer, is_long, is_real, is_string, is_object,…

– Các hàm trên trả về true nếu kiểu dữ liệucủa biến được kiểm tra là đúng.

MMộộtt ssốố hhààmm totoáánn hhọọcc

• mixed max ( array $values )mixed max ( mixed $value1,

mixed $value2 [, mixed $value3...] )• mixed min ( array $values )

mixed min ( mixed $value1, mixed $value2 [, mixed $value3...] )

Page 89: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMộộtt ssốố hhààmm totoáánn hhọọcc ((tttt))

MMộộtt ssốố hhààmm totoáánn hhọọcc ((tttt))

• int count ( mixed $var [, int $mode] )

Page 90: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMộộtt ssốố hhààmm totoáánn hhọọcc ((tttt))

• number abs ( mixed $number ) • float exp ( float $arg ) • number pow (number $base, number $exp ) • float sqrt ( float $arg ): tính căn bậc 2 • int rand ( [int $min, int $max] )

MMộộtt ssốố hhààmm totoáánn hhọọcc ((tttt))

• float round ( float $val [, int $precision] ) – VD: numberformat.php

• float ceil ( float $value )

• float floor ( float $value )

Page 91: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc totoáánn ttửử

• Toán tử số học

CCáácc totoáánn ttửử ((tttt))• Toán tử quan hệ

Page 92: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc totoáánn ttửử ((tttt))

• Toán tử luận lý

CCáácc totoáánn ttửử ((tttt))• Toán tử gán

– ( =, +=, -=, *=, /=, %=, .=)

Page 93: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc llựựaa chchọọnn

• Lệnh if / else– if (expr)

statement – if (expr)

statementelse

statement

CCấấuu trtrúúcc llựựaa chchọọnn ((tttt))

• Lệnh if / else– if (expr)

statement elseif (expr)

statementelse

statement

Page 94: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc llựựaa chchọọnn ((tttt))• Lệnh switch

CCấấuu trtrúúcc llặặpp

• Lệnh forfor (expr1; expr2; expr3) statement

Page 95: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc llặặpp ((tttt))

• Lệnh foreachforeach (array_expression as $value)

statement

foreach (array_expression as $key => $value)

statement

CCấấuu trtrúúcc llặặpp ((tttt))

• Lệnh foreach

Page 96: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc llặặpp ((tttt))

• Lệnh foreach

CCấấuu trtrúúcc llặặpp ((tttt))

• Lệnh foreach

Page 97: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCấấuu trtrúúcc llặặpp ((tttt))• Lệnh while

– while (expr) statement

CCấấuu trtrúúcc llặặpp ((tttt))

• Lệnh do / whiledo

statementwhile (expr) ;

Page 98: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

HHààmm• Qui tắc xây dựng hàm

function FunctionName($arg_1, $arg_2,/* ..., */ $arg_n)

{//statement

}

– Hàm có thể có hoặc không có giá trị trả về– Tên hàm phải khác với các hàm chuẩn– Một hàm có thể định nghĩa trong 1 hàm khác– Hàm trong PHP có tầm vực toàn cục

HHààmm ((tttt))• Ví dụ

Page 99: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

HHààmm ((tttt))

• Hàm đệ qui (Recursive functions )

MMảảngng (Array)(Array)• Mảng một chiều

– Khai báo mảng một chiều• $arr [ ] = item1;

$arr [ ] = item2;$arr [ ] = item3;

• $arr [0] = item1;$arr [1] = item2;$arr [2] = item3;

• $arr = array (“item1”, “item2”, “item3”) ;

Page 100: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

• Mảng một chiều– Khai báo mảng một chiều

• $arr [“one”] = “item1”;$arr [“two”] = “item2”;$arr [“three”] = “item3”;

• $arr = array (“one” => “item1”,“two”=> “item2”, “three”=> “item3”) ;

MMảảngng ((tttt))

• Mảng một chiều– Truy xuất các phần tử mảng

• Truy xuất trực tiếp phần tử: echo $arr [1]; // item1• Dùng vòng lặp duyệt mảng

Page 101: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

• Mảng một chiều– Truy xuất các phần tử mảng

• Dùng hàm list() và each()

MMảảngng ((tttt))• Mảng hai chiều

Page 102: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

• Các hàm làm việc với mảng– bool sort ( array &$array [, int $sort_flags] )

• Sắp xếp mảng tăng dần• Sorting type flags:

– SORT_REGULAR - compare items normally (don't change types)

– SORT_NUMERIC - compare items numerically – SORT_STRING - compare items as strings

MMảảngng ((tttt))

Page 103: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

• Các hàm làm việc với mảng– bool rsort ( array &$array [, int $sort_flags] )

• Sắp xếp mảng giảm

MMảảngng ((tttt))

• Các hàm làm việc với mảng– int count ( mixed $var [, int $mode] )

• Trả về số phần tử trong mảng• Tùy chọn mode ( từ phiên bản PHP 4.2.0)

–Mặc định: 0 –COUNT_RECURSIVE (1): Đếm tất cả các

phần tử đệ qui

Page 104: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

MMảảngng ((tttt))• Các hàm làm việc với mảng

– mixed current ( array &$array ) • Trả về phần tử hiện tại ở đầu mảng

– mixed next ( array &$array ) • Trỏ đến phần tử đứng sau phần tử hiện tại

– mixed prev ( array &$array ) • Trỏ đến phần tử trước phần tử hiện tại

Page 105: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

MMảảngng ((tttt))

MMảảngng ((tttt))

• Các hàm làm việc với mảng– mixed reset ( array &$array )

• Đặt con trỏ về phần tử đầu tiên của mảng

Page 106: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang

• Sử dụng các biến môi trường $_POST , $HTTP_POST_VARS, $_REQUEST đểtruyền các thông tin của form– Ví dụ: test.php

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))• foo.php

Page 107: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Sử dụng query string– Dạng: url ? key1 =value1 & key2 =value2 – Hoặc: url ? key = urlencode(value)– Sử dụng $_GET để lấy giá trị từ query string:

• $value1 = $_GET[‘key1'];• $value2 = $_GET[‘key2'];

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Queystring.php

• Querystring_result.php

Page 108: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Sử dụng Session– Cú pháp: $_SESSION[ ‘key’ ] = value; – Lấy giá trị từ session:

• $value = $_SESSION[‘key'];– Khai báo sử dụng session:

• session_start();– Kiểm tra session tồn tại:

if ( isset ($SESSION[‘key’]){}

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Session.php

• Session_result.php

Page 109: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Sử dụng Cookkie– Cookie là những thông tin được lưu trên máy

client– Cú pháp:bool setcookie ( string $name [, string $value [,

int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]]] )

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))

• Sử dụng Cookkie

Page 110: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

TruyTruyềềnn bibiếếnn gigiữữaa ccáácc trangtrang ((tttt))• Sử dụng Cookkie

Truyền thông tin bằng Form

• Các thành phần Form• Các thành phần khác• Xử lý Form

Page 111: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc ththàànhnh phphầầnn formform

• Cấu trúc Form– Bắt đầu và kết thúc bởi cặp thẻ

<Form> </Form>• Các thuộc tính:

– action, method, enctype• Các thành phần chính của form:

– textarea, select, input

CCáácc ththàànhnh phphầầnn form (form (tttt))

• Cấu trúc Form– Nằm trong cặp thẻ <Form> </Form>

• Các thuộc tính:– action, method, enctype

• Các thành phần chính của form:– textarea, select, input

Page 112: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc thuthuộộcc ttíínhnh FormForm• Action :

– action=”URL” hoặc action= “script code” màform sử dụng

• Method: phương thức thực hiện trên form– GET: mặc định– POST

CCáácc ththàànhnh phphầầnn khkháácc

• Textarea: thành phần hiển thị văn bản– Bắt đầu và kết thúc bởi <Texterea> và

</Texterea> – Các thuộc tính

• Name • Rows • Cols • Wrap: (off, vitual, physical)

Page 113: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc ththàànhnh phphầầnn khkháácc ((tttt))

• Select: thành phần cho phép hiển thị danh sách– Bắt đầu và kết thúc bởi <select> và </select> – Các thuộc tính

• Name • Size• Multiple

– Thẻ <option> </option> có thể chèn trong thẻ select, gồmcác thuộc tính

• Selected • Value• Disable

CCáácc ththàànhnh phphầầnn khkháácc ((tttt))

• input:– Bắt đầu và kết thúc bởi <input> và </input> – Các thuộc tính

• Name • Type

– checkbox, radio.– submit, button, reset.– password, text, file.– hidden, image

• Checked: trường hợp type là checkbox, radio.• Maxlength: trường hợp type là text, password• Size

Page 114: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

CCáácc ththàànhnh phphầầnn khkháácc ((tttt))

• Input (tt)– Kiểu text: ô nhập liệu

• <input type="text" name="name" />– Kiểu submit: nút nhấn

• <input type="submit“ name="submit" value="Submit"/ >

XXửử lýlý FormForm

• Khi form được submit, ta có thể lấy các giá trịtừ các thành phần trên form

• Truy xuất giá trị từ các thành phần trên Form được gởi (submit) bằng POST thông qua biếntoàn cục $_POST.

• Vd: $content = $_POST [‘txtContent’];

• Lệnh: print_r ($_POST): hiển thị toàn bộ nộidung của mảng $_POST.

Page 115: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

XXửử lýlý FormForm

• Ví dụ: trang action.html

• Trang action.php

XXửử lýlý FormForm

• Ví dụ: trang form.php

• Trang submit.php

Page 116: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

XXửử lýlý FormForm

• Form.htlm

• Form.php

Page 117: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

1

11

ChươngChương 44TTổổngng quanquan vvềề truytruy ccậậpp

cơcơ ssởở ddữữ liliệệuu

22

MMụụcc tiêutiêu• Sau khi học xong chương này, sinh viên có

thể:– Hiểu về công nghệ ADO. NET, hệ quản trị SQL

Server 2005 Express và công cụ SQL Server Management.

– Hiểu vai trò của các điều khiển DataBound vàDataSource.

– Sử dụng SQL Server Management và Server Explorer để tạo Server database và Local data-base.

– Sử dụng SqlData-Source để kết nối và truy cậpCSDL

Page 118: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

2

33

NNộộii dungdung• Công nghệ ADO.NET.• SQL Server 2005 Express• Điều khiển DataBound.• Điều khiển DataSource.• Điều khiển SqlDataSource

44

1. 1. CôngCông nghnghệệ ADO.NETADO.NET• ADO.NET (Active Data Objects .NET) là

công nghệ truy cập cơ sở dữ liệu củaMicrosoft

• ADO.NET là công nghệ truy cập cơ sở dữliệu trong .NET Framework

• ADO.NET không phải là bản nâng cấp củaADO, đây là một công nghệ hoàn toàn mới(như ASP.NET và ASP)

Page 119: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

3

55

1. 1. CôngCông nghnghệệ ADO.NETADO.NET• Việc truy cập dữ liệu trong ADO.NET được

thiết kế thành 3 lớp:– Lớp thấp nhất là lớp vật lý lưu trữ dữ liệu, đây có

thể là một tập tin Access, một cơ sở dữ liệu SQL hay một tập tin XML

– Lớp giữa (lớp trừu tượng) là lớp cung cấp dữliệu, thực hiện các chức năng kết nối cơ sở dữliệu, thao tác với dữ liệu

– Lớp trên cùng là tập dữ liệu (DataSet), đây làánh xạ của cơ sở dữ liệu vào bộ nhớ để làm việc

66

KiKiếếnn trtrúúcc ccủủaa ADO.NETADO.NET

Page 120: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

4

77

MMụụcc tiêutiêu ccủủaa ADO.NETADO.NET• Cung cấp các lớp để thao tác CSDL trong cả

hai môi trường là phi kết nối (Disconected data) và kết nối (Connected data)

• Tích hợp chặt chẽ với XML (Extensible Markup Language)

• Tương tác với nhiều nguồn dữ liệu thôngqua mô tả dữ liệu chung

• Tối ưu truy cập nguồn dữ liệu (OLE DB & SQL server)

• Làm việc trên môi trường Internet

88

ƯuƯu điđiểểmm ccủủaa ADO.NETADO.NET• Người dùng có thể làm việc với cơ sở dữ

liệu thông qua DataSet mà không cần quantâm đến loại cơ sở dữ liệu cụ thể

• Tiết kiệm công sức xây dựng ứng dụng(không cần phải viết lại chương trình khi thayđổi cơ sở dữ liệu)

Page 121: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

5

99

CCáácc namespace namespace cơcơ bbảảnn ccủủaa ADO.NETADO.NET

• System.Data• System.Data.SqlClient: Dùng cho cơ sở dữ

liệu SQL• System.Data.OleDb: Dùng cho cơ sở dữ liệu

access• System.Data.OracleClient: Dùng cho cơ sở

dữ liệu Oracle

1010

CCấấuu trtrúúcc ccủủaa ADO.NETADO.NET

Page 122: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

6

1111

CCáácc đđốốii tưtượợngng ConnectionConnection• OleDbConnection: Kết nối với CSDL Access • SqlConnection: Kết nối đến CSDL SQL

Server• OracleConnection: Kết nối với CSDL Oracle• Khi làm việc với mỗi loại dữ liệu, ta cần khai

báo các namespace tương ứng– using System.Data.OleDb; – using System.Data.SqlClient;– using System.Data.OracleClient;

1212

2. SQL Server 2005 Express2. SQL Server 2005 Express• Microsoft SQL Server 2005 Express là phiên

bản của SQL Server được kèm theo Visual Studio, có thể tải về tại Website http://msdn.microsoft.com/sql/2005

• Microsoft SQL Server 2005 Express đượcxem như bản thu gọn của phiên bản SQL Server 2005, do đó phần mềm này chỉ giớihạn trong một số tính năng

Page 123: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

7

1313

SQL Server 2005 Express ManagementSQL Server 2005 Express Management

• Có thể sử dụng một trong ba công cụ để tạocơ sở dữ liệu mới khi dùng SQL Server 2005 Express– Sử dụng Server Explorer trong Visual Studio– Sử dụng Microsoft SQL Server Management

Studio Express, tải ở Website http://msdn.microsoft.com/sql/2005

– Sử dụng giao diện dòng lệnh SQLCMD –S.\SQLExpress. Kế đến là nhập các câu lệnhSQL tại dấu nhắc

1414

Server databaseServer database• Cơ sở dữ liệu được lưu trữ trên Server của

hệ quản trị cơ sở dữ liệu

Page 124: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

8

1515

Server database (Server database (tttt))• Tạo server database

– Sử dụng Microsoft SQL Server Management Studio Express

– Tạo trực tiếp trong môi trường VS.Net: cửa sổServer Explorer

1616

Local databaseLocal database• Tập tin cơ sở dữ liệu được lưu trữ trong thư

mục App_data của Website• So sánh local database và server database

– Sử dụng local database dễ dàng sao chép, dichuyển thư mục website (file CSDL nằm trongthư mục) thay vì phải backup, restore như đốivới server database

– Trong ứng dụng sử dụng CSDL phức tạp, kếthợp với cơ chế bảo mật của ASP.NET, server database thích hợp hơn

Page 125: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

9

1717

ĐiĐiềềuu khikhiểểnn DataBoundDataBound• Các điều khiển DataBound thường được sử

dụng để tạo ra giao diện người dùng khi truycập dữ liệu

• Các điều khiển DataBound có thể được sửdụng để hiển thị và sửa đổi cơ sở dữ liệu, dữliệu XML hoặc các kiểu dữ liệu khác

• Có ba loại điều khiển DataBound tiêu biểu: –Điều khiển danh sách–Điều khiển dạng bảng–Điều khiển phân cấp

1818

ĐiĐiềềuu khikhiểểnn danhdanh ssááchch• Được sử dụng để hiển thị các danh sáchđơn giản, gồm các điều khiển:– DropDownList– ListBox– CheckBoxList– RadioButtonList– BulletedList

• Các điều khiển trên đều thừa kế cùng mộtlớp cơ sở ListControl. Do đó, chúng cóchung một tập các thuộc tính và phươngthức

Page 126: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

10

1919

ĐiĐiềềuu khikhiểểnn phânphân ccấấpp• Điều khiển DataBound phân cấp được sử

dụng để hiển thị các phần tử dữ liệu lồngnhau, như– Hiển thị thư mục và cấu trúc Website– Nội dung của tập tin XML

• Điều khiển phân cấp gồm các điều khiển:– Menu: Hiển thị các phần tử dữ liệu trong một

menu tĩnh hoặc động– TreeView: Hiển thị các phần tử dữ liệu trong cấu

trúc cây

2020

ĐiĐiềềuu khikhiểểnn ddạạngng bbảảngng• Là các điều khiển được sử dụng để hiển thị

và sửa đổi dữ liệu được lấy từ cơ sở dữ liệuhay các nguồn dữ liệu khác

• Được chia thành hai nhóm chức năng:– Hiển thị nhiều phần tử dữ liệu:

• GridView• DataList• Repeater

– Hiển thị một phần tử dữ liệu ở mỗi thời điểm• DetailsView• FormView

Page 127: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11

2121

4. 4. ĐiĐiềềuu khikhiểểnn DataSourceDataSource• Một điều khiển DataBound (GridView, DataList, BulletedList, ListBox, CheckBoxList, … ) được gắn với một điềukhiển DataSource.

• Có năm loại điều khiển DataSource– SqlDataSource– AccessDataSource– SiteMapDataSource– XMLDatasource– ObjectDataSoure

2222

ĐiĐiềềuu KhiKhiểểnn SqlDataSourceSqlDataSource ((tttt))• Điều khiển SqlDataSource cho phép

chúng ta kết nối thao tác nhanh chóng và dễdàng để hiển thị các loại cơ sở dữ liệu nhưSQL Server, Oracle Server, ODBC, OLE DB,… trong trang Web

• Điều khiển SqlDataSource dùng để kết nốivà có thể thực thi các lệnh trên cơ sở dữ liệuSQL

Page 128: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

12

2323

ĐiĐiềềuu KhiKhiểểnn SqlDataSourceSqlDataSource ((tttt))• Điều khiển SqlDataSource sử dụng các đối

tượng ADO.NET như DataSet, DataReadervà Command, cho phép sử dụng các đốitượng ADO.NET qua thao tác trực quankhông phải lập trình

• Được sử dụng kết hợp với các điều khiểnGridView, FormView để hiển thị và cập nhậtdữ liệu, thực thi các lệnh tác động đến cơ sởdữ liệu trong lập trình

2424

KKếếtt nnốốii databasedatabase• Kéo biểu tượng SQLDataSource từ cửa sổ

Toolbox lên WebForm

Page 129: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

13

2525

KKếếtt nnốốii database (database (tttt))• Kết nối mặc định là Microsoft SQLServer, ta

có thể chọn một data source khác bằng cáchclick vào nút Change..

2626

KKếếtt nnốốii vvớớii SQL Server SQL Server

Page 130: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

14

2727

KKếếtt nnốốii vvớớii local databaselocal database• Chọn một loại data source (Access file, SQL

Server file,….

2828

KKếếtt nnốốii vvớớii local database (local database (tttt))• Click nút Browse để

chọn file database.• Chọn Test Connection để kiểm tra kết nối

• Chọn OK

Page 131: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

15

2929

ChuChuỗỗii kkếếtt nnốốii• Chuỗi kết nối SQLServer database file:

– "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=SSPI;User Instance=True”

• Chuỗi kết nối Access database file– "Provider=Microsoft.Jet.OLEDB.4.0;

Data Source= |DataDirectory|\NewsDb.mdb;Persist Security Info=True“providerName="System.Data.OleDb"

3030

ChuChuỗỗii kkếếtt nnốốii ((tttt))• Chuỗi kết nối với CSDL trên server :

– "Data Source=.\SQLExpress;Initial Catalog = MyDatabase;Integrated Security = True”Hoặc"Server=.\SQLExpress;Database=MyDatabase;Integrated Security = True"

– Trong đó, Initial Catalog là tên cơ sởdữ liệu muốn kết nối

Page 132: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

16

3131

KKếếtt NNốốii VVớớii CơCơ SSởở DDữữ LiLiệệuu KhKháácc• Có thể kết nối với cơ sở dữ liệu khác như

Microsoft Access bằng điều khiểnSqlDataSource

• Khi kết nối với bất kỳ cơ sở dữ liệu nào khácvới SQL Server, ta cần sửa lại thuộc tínhProviderName của điều khiểnSqlDataSource. – Ví dụ:

ProviderName="System.Data.OleDb"

3232

ChChứứaa chuchuỗỗii kkếếtt nnốốii trongtrong ttậậpp tin tin Web.ConfigWeb.Config

• Không nên chứa chuỗi kết nối trong trangWeb mà phải chứa trong tập tin riêng vì:– Không an toàn– Khó quản lý, khó sửa đổi. Vì nếu cần sửađổi phải sửa đổi tất cả các trang trongWebsite

• Vì các lý do trên, chúng ta phải đặt chuỗi kếtnối trong tập tin Web.Config.

Page 133: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

17

3333

ChChứứaa cchuhuỗỗii kkếếtt nnốốii ttrongrong ttậậpp ttin in Web.ConfigWeb.Config ((tttt))

• Chúng ta có thể thêm nhiều chuỗi kết nối vàotag connectionStrings trong trangWeb.config:

3434

ChChứứaa chuchuỗỗii kkếếtt nnốốii trongtrong ttậậpp tin tin Web.ConfigWeb.Config ((tttt))

• Ngoài việc thêm chuỗi kết nối vào tập tin Web.Config của ứng dụng, chúng ta cóthể thêm chuỗi này vào tập tin Web.Config gốc để có thể sử dụng trongtất cả ứng dụng chạy trên server của chúngta. Tập tin Web.Config gốc được đặt tại:C:\WINDOWS\Microsoft.NET\Framework\[version]\CONFIG

Page 134: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

18

3535

SSửử ddụụngđingđiềềuu khikhiểểnn SqlDataSourceSqlDataSource

3636

SSửử ddụụngđingđiềềuu khikhiểểnn SqlDataSource(ttSqlDataSource(tt))• Mã lệnh trên trang giao diện

Page 135: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

19

3737

SSửử ddụụngđingđiềềuu khikhiểểnn SqlDataSource(ttSqlDataSource(tt))• Có thể sử dụng SqlDataSource và tham số

3838

SSửử ddụụngđingđiềềuu khikhiểểnn SqlDataSource(ttSqlDataSource(tt))• Có thể sử dụng SqlDataSource và

Request.Form

Page 136: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

20

3939

SSửử ddụụngđingđiềềuu khikhiểểnn SqlDataSource(ttSqlDataSource(tt))• Ngoài ra có thể sử dụng SqlDataSource với

các đối tượng sau:– Session– Server Control (DropDownList,ListBox,…– HttpCookie– Proceduce

• Cập nhật dữ liệu cho tham số:SqlDataSource1.SelectParameters[“ProductName”]

. DefaultValue = newvalue;

Page 137: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

1

1

Điều khiển danh sách và phân cấp

Lập trình Web – Chương 5

2

Mục tiêunSau khi học xong chương này, sinh viên

có thển Hiểu ý nghĩa và vai trò của các điều khiển

danh sách và phân cấp.n Chọn được loại danh sách thích hợp trong

thiết kế giao diện web siten Biết sử dụng được các điều khiển dùng để

hiển thị dữ liệu ở dạng danh sách.n Biết sử dụng được các điều khiển dùng để

hiển thị dữ liệu ở dạng menu và cây

Page 138: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

2

Nội dung

nBài 1: Điều khiển danh sáchnBài 2: Điều khiển phân cấp

3

4

Bài 1: Điều khiển danh sáchn Giới thiệun Khai báo các phần tử.n Kết nối dữ liệu nguồn.n Xác định phần tử được chọn.n Thêm phần tử vào danh sách.n Xóa phần tử từ danh sáchn Thuộc tính AutoPostBack.n Các điều khiển danh sách

Page 139: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

3

5

Giới thiệu

6

Giới thiệu

Page 140: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

4

7

Khai báo các phần tử

nCác điều khiển danh sách hiển thị một danh sách các phần tử. nMỗi phần tử trong danh sách là một đối

tượng của lớp ListItem. nCó thể khai báo các phần tử trong giao

diện

8

Khai báo các phần tử (tt)

Page 141: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

5

9

Khai báo các phần tử (tt)

10

Khai báo các phần tử (tt)

nMỗi phần tử ListItem có các thuộc tính: n Text: chuỗi hiển thị của phần tử trong danh

sáchn Value: giá trị truy xuất phần tử, thường chứa

giá trị khóa của bảng dữ liệun Selected: cho biết trạng thái của phần tử

(chọn hay không chọn)n CheckBoxList, RadioButtonList: dấu checkn ListBox: phần tử được tô đậmn ComboBox: phần tử hiển thịn BulletedList: không sử dụng

Page 142: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

6

11

Khai báo các phần tử (tt)

nCó thể khai báo các phần tử bằng code

12

Kết nối dữ liệu nguồn

nCó hai cách kết nối điều khiển danh sách với dữ liệun Khai báo trên giao diện

Page 143: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

7

13

Kết nối dữ liệu nguồn n Khai báo trên giao diện (tt)

14

Kết nối dữ liệu nguồn n Khai báo trên giao diện (tt)

Page 144: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

8

15

Kết nối dữ liệu nguồn n Khai báo trên giao diện (tt)

16

Kết nối dữ liệu nguồn n Khai báo trên giao diện (tt)

Page 145: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

9

17

Kết nối dữ liệu nguồn n Khai báo trên giao diện (tt)

18

Kết nối dữ liệu nguồn n Kết nối dữ liệu bằng code (VD: Ex606d)

Page 146: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

10

19

Kết nối dữ liệu nguồn n Kết nối dữ liệu bằng code (tt)

20

Xác định phần tử được chọn

nXác định phần tử được chọn trong danh sách thông qua các thuộc tính:n SelectedIndex: vị trí phần tử đang được chọnn SelectedItem: phần tử đang được chọn

(ListItem)n SelectedValue: truy xuất trường Value của

phần tử đang được chọnn Ví dụ:

n Label1.Text = ListBox1.SelectedItem.Text;n int index = ListBox1.SelectedIndex;n string id = ListBox1.SelectedValue.ToString();

Page 147: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11

21

Thêm phần tử vào danh sách

nSử dụng các phương thức Add, Insert của danh sách Itemsn Add: thêm phần tử vào cuối danh sáchn Insert: thêm phần tử vào danh sách tại vị trí

chỉ địnhn Ví dụ (Ex617.aspx):

n ListBox1.Items.Add(TextBox1.Text);n ListBox1.Items.Insert ( ListBox1.Items.Count,

TextBox1.Text);

Xóa phần tử từ danh sách

nSử dụng các phương thức Remove, RemoveAt của danh sách Itemsn Remove: xóa phần tử (ListItem)n RemoveAt: xóa phần tử theo vị trín Ví dụ:

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);

ListBox1.Items.Remove(ListBox1.SelectedItem);

22

Page 148: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

12

23

Sử dụng thuộc tính AutoPostBack nMặc định, đối với các điều khiển danh

sách, thuộc tính AutoPostBack = False. nDo đó, khi tthay đổi lựa chọn các phần tử

trong danh sách, dữ liệu của trang không được postback về servernMuốn việc thay đổi lựa chọn được xử lý

ngay tức thời, thiết lập giá trị thuộc tính AutoPostBack = Truen Lưu ý: chỉ nên gán AutoPostBack = True

khi thật sự cần thiết. (VD: Ex619.aspx)

24

Các điều khiển danh sách

nĐiều khiển DropDownList.nĐiều khiển RadioButtonList.nĐiều khiển ListBox.nĐiều khiển CheckBoxList.nĐiều khiển BulletedList

Page 149: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

13

25

Điều khiển DropDownList nHiển thị một danh sách các lựa chọn với

yêu cầu không gian màn hình tối thiểu. nChỉ cho phép hiển thị một phần tử duy

nhất, các phần tử còn lại chỉ hiển thị khi click vào DropDownListnTại mỗi thời điểm, chỉ có thể chọn một

trong các phần tử của danh sách.

26

Điều khiển ListBox

nTương tự như điều khiển DropDownListnĐiểm khác nhau giữa ListBox và

DropDownList:n ListBox hiển thị tất cả phần tử . n ListBox cho phép người sử dụng chọn nhiều

phần tử cùng một lúc (Ex618.aspx)

Page 150: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

14

27

Điều khiển CheckBoxList

nHiển thị danh sách các check boxnCác phần tử có thể được

bố trí theo hướng ngang hay dọcnCho phép chọn nhiều phần tử

28

Điều khiển CheckBoxList (tt)

nMột số thuộc tínhn RepeatColumns: số cộtn RepeatDirection: Hướng trình bày dữ liệun RepeatLayout: trình bày dữ liệu dạng bảng

(table) hoặc tuần tự (flow)n DataTextField: trường dữ liệu hiển thịn DataValueField: trường giá trị ẩn, truy xuất

thông qua thuộc tính SelectedValue

Page 151: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

15

29

Điều khiển RadioButtonList

nHiển thị danh sách các RadioButtonnChỉ cho phép chọn một phần tử tại mỗi

thời điểmnCác thao tác với điều khiển này tương đương với điều khiển CheckBoxList

30

Điều Khiển BulletedList

nHiển thị danh sách kiểu liệt kênMỗi phần tử có thể hiển thị ở dạng văn

bản, LinkButton hoặc HyperLinknĐiều khiển BulletedList không hỗ trợ các

thuộc tính SelectedIndex, SelectedItem và SelectedValue

Page 152: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

16

31

Điều Khiển BulletedList (tt)

nMột số thuộc tínhn BulletStyle: Kiểu của các kí hiệun DisplayMode

n Textn HyperLinkn LinkButton

32

Bài 2. Điều khiển phân cấp

nGiới thiệunMenunTreeView

Page 153: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

17

33

Giới thiệunĐiều khiển DataBound phân cấp được sử

dụng để hiển thị các phần tử dữ liệu theo dạng phân cấpnHai điều khiển thường được sử dụngnMenu: Hiển thị các phần tử dữ liệu trong

một menu tĩnh hoặc độngnTreeView: Hiển thị các phần tử dữ liệu

trong cấu trúc câynCác điều khiển trên có thể dùng để liên kết đến địa chỉ một trang Web

34

Giới thiệu

Page 154: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

18

35

Điều khiển menu

nMỗi điều khiển menu bao gồm nhiều menu itemnMỗi menu item bao gồm các menu item

khác theo dạng phân cấp

36

Điều khiển menu

Page 155: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

19

37

Tạo phần tử cho menu

38

Tạo phần tử cho menu (tt)

nMenu item: gồm các thuộc tínhn ImageUrl: ảnh hiển thị trên phần tửn NavigateUrl: địa chỉ URL trang liên kết đếnn Text: chuỗi hiển thị trên phần tửn Value: trường giá trịn Selected: trạng thái chọn/ không chọnn Tooltip

nBiến cố mặc định: MenuItemClickn Ví dụ: EX803.aspx

Page 156: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

20

39

Tạo phần tử cho menu (tt)

40

Tạo phần tử cho menu (tt)

Page 157: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

21

41

Menu và MultiViewnCó thể sử dụng điều khiển Menu kết hợp

với điều khiển MultiView để tạo thành các TabPagen Điều khiển Menu hiển thị các tabn Điều khiển MultiView hiển thị nội dung trên

mỗi tabn Ví dụ:

ex803b.aspx

42

Menu và MultiView (tt)

Page 158: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22

43

Menu và MultiView (tt)

44

Menu và MultiView (tt)

Page 159: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

23

45

Liên kết Menu với XML

nĐiều khiển Menu có thể liên kết với tập tin XML để hiển thị dữ liệu trong tập tin bằng cách sử dụng điều khiển XmlDataSourcenVí dụ: ex804.aspx

46

Liên kết Menu với XML (tt)

Page 160: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

24

47

Liên kết Menu với CSDL

nKhông thể kết nối trực tiếp điều khiển Menu với SqlDataSource hoặc ObjectDataSourcenChủ yếu sử dụng code nVí dụ: MenuRuntimeDemo.aspx

48

Liên kết Menu với CSDL (tt)

Page 161: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

25

49

Liên kết Menu với CSDL (tt)

50

Định dạng Menu

nThông qua các thuộc tính:n Orientationn StaticHoverStylen StaticMenuItemStylen StaticSelectedStyle

nCó thể sử dụng chức năng AutoFormat

Page 162: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

26

51

Điều khiển TreeViewnĐiều khiển TreeView tương tự như điều

khiển Menu.nCho phép hiển thị dữ liệu

phân cấp nĐiểm khác nhau cơ bản

của hai điều khiển này là cách hiển thịnMỗi phần tử của điều khiển

TreeView là một đối tượng TreeNode (Ex805.aspx)

52

Thêm nút vào TreeView

nSử dụng cửa sổ TreeViewNode Editor

Page 163: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

27

53

Thêm nút vào TreeView (tt)

54

Thêm nút vào TreeView (tt)

Page 164: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

28

55

Hiển thị CheckBoxnThiết lập giá trị cho thuộc tính ShowCheckBoxes. nAllnLeafnNonenParentnRoot

56

Liên kết TreeView với XML

nTương tự Menu, liên kết TreeView trực tiếp với XmlDataSource (Ex808.aspx)

Page 165: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

29

57

Liên kết với CSDL – Định dạng

n Liên kết với CSDL: Tương tự như menunĐịnh dạng TreeView: thông qua các thuộc

tínhn ExpandDepthn ToolTipn HoverNodeStylen LeafNodeStylen NodeStylen ParentNodeStylen RootNodeStylen SelectedNodeStyle

58

Page 166: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

1

Chương 6

ĐIỀU KHIỂNDẠNG BẢNG

1

Mục tiêuó Hiểu ý nghĩa và vai trò của các điều

khiển dạng bảng.ó Hiểu ý nghĩa của Template và biểu thức

DataBinding.ó Sử dụng được các điều khiển dùng để

hiển thị một tập mẫu tin ở dạng bảng.ó Sử dụng được các điều khiển dùng để

hiển thị chỉ một mẫu tin ở dạng bảng.

2

Page 167: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

2

Nội dungó Giới thiệuó Điều khiển GridViewó Điều khiển DataListó Điều khiển Repeateró Điều khiển DetailViewó Điều khiển FormView

3

1. Giới thiệuó Các điều khiển DataBound dạng bảng là

các điều khiển thường được sử dụng đểthao tác với cơ sở dữ liệu như hiển thị vàsửa đổi dữ liệu lấy từ cơ sở dữ liệu hay các nguồn dữ liệu khácó Có năm điều khiển dạng bảng, được

chia thành hai loại khác nhau: ◦ Hiển thị nhiều phần tử dữ liệu◦ Hiển thị một phần tử dữ liệu ở mỗi thời điểm

4

Page 168: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

3

1. Giới thiệuó Điều khiển hiển thị một tập các phần tử

dữ liệu◦ GridView◦ DataList◦ Repeateró Điều khiển hiển thị một phần tử dữ liệu

trong mỗi thời điểm : ◦ DetailsView◦ FormView

5

1. Giới thiệu

6

Page 169: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

4

2. GridViewó Sử dụng cửa sổ GridView Tasksó Hiển thị dữ liệu.ó Chọn dữ liệu.ó Sắp xếp dữ liệu.ó Phân trang dữ liệu.ó Cập nhật và xóa dữ liệu.ó Định dạng GridView.ó Sử dụng các trường

7

Sử Dụng Cửa Sổ GridView Tasksó Cửa sổ GridView Tasks cho phép thiết

lập hầu hết các thao tác trên điều khiểnGridView. ◦ Chọn nguồn dữ liệu◦ Định dạng◦ Chỉnh sửa các cộtó Để sử dụng cửa sổ GridView Tasks,

click vào mũi tên nhỏ phía trên phải củađiều khiển GridView (hoặc click phảivào GridView và chọn Show SmartTag)

8

Page 170: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

5

Sử Dụng Cửa Sổ GridView Tasks

9

Hiển thị dữ liệuó Điều khiển GridView hiển thị các phần tử

dữ liệu trong một bảng. Mỗi phần tử dữ liệutương ứng với một hàngó Để hiển thị dữ liệu, chỉ cần gán nguồn dữ

liệu cho GridView bằng khai báo hoặc bằngcode◦ Khai báo: gán vào thuộc tính DataSourceId là

một Object DataSource (SqlDataSource, AccessDataSource,…)

◦ Bằng code: Gán vào thuộc tính DataSource mộtnguồn dữ liệu (DataTable, SqlDataSource, …), sau đó gọi phương thức DataBind

10

Page 171: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

6

Hiển thị dữ liệu (tt)

11

Chọn dữ liệuó Có thể xác định hàng nào được chọn

trong GridView bằng cách sử dụng bấtkỳ thuộc tính nào sau đây: ◦ SelectedValue: truy xuất trường giá trị◦ SelectedDataKey: truy xuất trường khóa◦ SelectedIndex: truy xuất vị trí phần tử◦ SelectedRow: truy xuất dòng được chọn

12

Page 172: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

7

Chọn Dư Liệu (tt)ó Ví dụ (Ex704.aspx):

◦ Trang Web chứa hai điều khiển GridView. ◦ Điều khiển GridView thứ nhất hiển thị danh

sách các loại phim. ◦ Khi chúng ta chọn một loại phim, điều khiểnGridView thứ hai hiển thị danh sách củacác tựa phim thuộc loại đã chọn được tìmthấy

13

Chọn Dư Liệu (tt)

14

Page 173: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

8

Chọn Dư Liệu (tt)

15

Sử Dụng Khóaó Chúng ta kết hợp một khóa với mỗi hàng

trong GridView bằng cách cung cấpcác giá trị phân biệt tương ứng với cáchàng đó cho thuộc tính DataKeyNamescủa điều khiển GridView. ó Các giá trị có thể là các trị của một hay

nhiều trường (các tên trường phải đượcphân cách bằng dấu phẩy) nào đó đượcsử dụng làm khóa chính trong cơ sở dữliệu.

16

Page 174: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

9

Sử Dụng Khóa (tt)ó Ví dụ (Ex705.aspx): bảng Employees

của cơ sở dữ liệu EmployeesDB.mdf sửdụng hai trường FirstName và LastNamelàm khóa chính. ó Trong trang Web, khi chọn một người thì

thông tin chi tiết về người đó sẽ đượchiển thị.

17

Sử Dụng Khóa (tt)

18

Page 175: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

10

Sử Dụng Khóa (tt)

19

Sắp xếp dữ liệuó Thiết lập thuộc tính AllowSorting = true. ó Khi đó, các tiêu đề cột hiển thị dạng liên

kết. ó Click vào tiêu đề của một cột, các hàng

trong GridView sẽ được sắp thứ tựtăng dần theo cột đã chọnó Ví dụ (Ex706.aspx)

20

Page 176: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

11

Sắp Xếp dữ liệu với AJAXó Mặc định, khi chúng ta click vào tiêu đề

cột để sắp thứ tự, trang Web chứaGridView được gởi đến server. ó Để tránh gởi toàn bộ trang Web, chúng

ta có thể sử dụng ưu điềm của AJAX(Asynchronous JavaScript and XML) đểsắp xếp bằng cách thiết lập thuộc tínhEnableSortingAndPagingCallbacks = True. ó (VD Ex707.aspx)

21

Sắp xếp dữ liệu sử dụng codeó Sử dụng phương thức Sort() của điều

khiển GridViewó Ví dụ (Ex708.aspx)grdMovies.Sort( ddlSort.Text,SortDirection.Ascending);

22

Page 177: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

12

Phân trang dữ liệuó Khi làm việc với cơ sở dữ liệu có số

lượng mẫu tin lớn, cần phải hiển thị cácmẫu tin trong nhiều trang khác nhau. ó Để phân trang các mẫu tin cần hiển thi

trong điều khiển GridView, thiết lậpthuộc tính AllowPaging = TrueVd: Ex709.aspx)

23

Phân trang với AJAXó Ý nghĩa của việc phân trang với AJAX

cũng tương tự như sắp xếp với AJAX. ó Chúng ta thiết lập thuộc tính

EnableSortingAndPagingCallbacks củaGridView là true (Vd: Ex710.aspx)

24

Page 178: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

13

Cập nhật và xóa dữ liệuó Điều khiển GridView cũng cho phép

sửa đổi dữ liệu trong cơ sở dữ liệu màkhông cần viết mã lệnh (Vd: Ex711.aspx)ó Các lệnh UpdateCommand vàDeleteCommand của SQL có chứa cáctham số. Ví dụ, lệnh UpdateCommand códạng:◦ UPDATE Movies SET Title=@Title,

Director=@Director WHERE Id=@Id

25

Cập nhật và xóa dữ liệu (tt)

26

Page 179: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

14

Định dạng GridViewó Sử dụng chức năng AutoFormató Thiết lập các thuộc tính:

◦ HeaderStyle◦ FooterStyle◦ RowStyle◦ SelectedRowStyle◦ EditRowStyle◦ …

27

Tùy biến các cột trong GridViewó Trong cửa sổ GridView Tasks, chọn Edit

Column◦ BoundField: các trường trong bảng dữ liệu◦ CheckBoxField: hiển thị

dạng checkbox◦ HyperLinkField: hiển thị

dạng liên kết◦ ImageField: hiển thị dạng

hình ảnh◦ CommandField: các nút

chức năng: Select, Delete, Edit

28

Page 180: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

15

Điều Khiển DataListó Cũng như điều khiển GridView, điều

khiển DataList được sử dụng để hiểnthị một tập dữ liệu ở một thời điểm. ó Được sử dụng để hiển thị các mẫu tin

trong bảng cơ sở dữ liệu.

29

Hiển thị dữ liệuó Để hiển thị dữ liệu bằng điều khiểnDataList, chúng ta phải cung cấp chođiều khiển này thành phầnItemTemplate. ó Nội dung của ItemTemplate sẽ được

hiển thị cho mỗi phần tử của dữ liệunguồn

30

Page 181: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

16

Hiển thị dữ liệu (tt)ó Điều khiển DataList hỗ trợ một tập các

template sau: ◦ ItemTemplate◦ AlternatingItemTemplate◦ SeparatorTemplate◦ HeaderTemplate◦ FooterTemplate

31

Hiển thị dữ liệu (tt)ó Ngoài ra, điều khiển DataList cũng hỗ

trợ hai template sau: ◦ EditItemTemplate◦ SelectedItemTemplateó Click vào mũi tên nhỏ phía trên phải củađiều khiển DataList, xuất hiện cửa sổDataList Tasks

32

Page 182: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

17

Hiển thị dữ liệu (tt)ó Vd: Ex712.aspx

33

Hiển thị dữ liệu (tt)ó Ghi chú:

◦ Biểu thức liên kết dữ liệu được chứa trongdấu phân cách <%# và %>

◦ Phương thức Eval() hay Bind(). ñ Phương thức Eval() nhận một đối số là tên một

trường và trả về chuỗi chứa giá trị của trường đótrong mẫu tin hiện hành từ bảng cơ sở dữ liệu. ñ Chúng ta có thể cung cấp đối số tùy chọn thứ haiđể định dạng chuỗi trả về.

34

Page 183: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

18

Hiển thị dữ liệu (tt)ó Các kiểu định dạng

◦ General – {0}◦ Number – {0:N}◦ Decimal – {0:D}◦ Fixed-point – {0:F}◦ Currency – {0:C}◦ Scientific - {0:E}◦ Hexadecimal – {0:X}

Ví dụ: <%#Eval("BoxOfficeTotals","{0:c}") %>sẽ hiển thị giá trị của trường BoxOfficeTotals trongmẫu tin hiện hành ở dạng Currency

35

Hiển thị dữ liệu (tt)ó Truyền query string trong phần tử

ItemTemplate<a href='<%# “nextpage.aspx? id=“ + Eval("NewsID")) %>’ >click here go to next page</a>

36

Page 184: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

19

Hiển Thị Header Và Footeró HeaderTemplate vàFooterTemplate trong điều khiểnDataList dùng để hiển thị tiêu đề đầuvà cuối của bảng các phần tử dữ liệu. ó Vd Ex713.aspx: HeaderTemplate chứa

tiêu đề của bảng và FooterTemplatechứa một điều khiển Label để hiển thị tổng giá trị của các hàng trước đó.

37

Hiển Thị Header Và Footer (tt)

38

Page 185: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

20

Hiển thị dữ liệu trong nhiều cộtó Có thể hiển thị nội dung của điều khiểnDataList thành một bảng có nhiều cột, trong đó mỗi phần tử dữ liệu được chứatrong một ô. ó Có hai thuộc tính của DataList được sử

dụng để bố trí cách hiển thị này: ◦ RepeatColumns◦ RepeatDirectionó Vd: Ex714.aspx

39

Hiển thị dữ liệu trong nhiều cột

40

Page 186: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

21

Chọn dữ liệuó Sử dụng thuộc tính SelectedValue

◦ VD: DataListDemo.aspx

41

Chọn dữ liệu (tt)

42

Page 187: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

22

Cập nhật và xóa dữ liệuó Có thể sử dụng DataList để thay đổi dữ

liệu trong database. ó Tuy nhiên, với DataList, việc chỉnh sửa

dữ liệu yêu cầu phải viết code trong cácsự kiện◦ UpdateCommand◦ EditCommand◦ DeleteCommand◦ CancelCommandñ VD: DataListEditData.aspx

43

Cập nhật và xóa dữ liệu (tt)

44

Page 188: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

23

Cập nhật và xóa dữ liệu (tt)

45

Cập nhật và xóa dữ liệu (tt)

46

Page 189: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

24

Cập nhật và xóa dữ liệu (tt)

47

Định dạng DataListó Một số thuộc tính dùng để định dạng sự

hiển thị của điều khiển DataList:◦ CssClass◦ AlternatingItemStyle◦ EditItemStyle◦ HeaderStyle◦ FooterStyle◦ ItemStyle◦ SelectedItemStyle◦ SeparatorStyle

48

Page 190: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

25

Điều khiển Repeateró Điều khiển Repeater cho phép hiển thị

một danh sách dữ liệu tùy thích. ó Điều khiển này không có sẵn định dạng

mặc định để hiển thị mà ta phải cung cấpđịnh dạng hiển thị cho Repeater bằngcách tạo ra các template. ó Có thể tạo nhiều dạng hiển thị dữ liệu

khác nhau như: Dạng bảng, dạng danhsách được phân cách bằng dấu phẩy (a, b, c, d, …) và dạng danh sách kiểuXML,…

49

Hiển thị dữ liệuó Để hiển thị dữ liệu với điều khiển

Repeater, chúng ta phải tạoItemTemplate bằng chế độ Source view

50

Page 191: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

26

Sử dụng Templateó Điều khiển Repeater hỗ trợ năm loại

template khác nhau: ◦ ItemTemplate: template cho mỗi phần tử◦ AlternatingItemTemplate: template

cho tất cả các phần tử◦ SeparatorTemplate: template giữa hai

phần tử◦ HeaderTemplate◦ FooterTemplateVD: ex716.aspx

51

Điều khiển DetailViewó Điều khiển DetailsView và FormView

cho phép hiển thị và thao tác với chỉ mộtphần tử dữ liệu ở mỗi thời điểm. ó Hai điều khiển này dùng để hiển thị, phân

trang, sửa, chèn/thêm và xóa dữ liệuó Sự khác nhau giữa hai điều khiển này là:

◦ DetailsView: hiển thị một mẫu tin theo dạngbảng.

◦ FormView: sử dụng template để tạo giao diệnngười dùng tùy ý

ó Điều khiển DetailsView thường đượcdùng chung với GridView để sửa đổi dữliệu

52

Page 192: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

27

Hiển thị dữ liệuó Điều khiển DetailsView hiển thị mẫu

tin trong một bảng. ó Điều khiển này hỗ trợ cả hai dạng liên

kết dữ liệu bằng khai báo và bằng lậptrình

53

Sử dụng các trườngó Được dùng để tùy biến các trường hiển

thị trong DetailsViewó Điều khiển DetailsView hỗ trợ một tập

các trường tương tự GridView◦ BoundField◦ CheckBoxField◦ CommandField◦ ButtonField◦ HyperLinkField◦ ImageField◦ TemplateField

54

Page 193: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

28

Sử dụng các trường (tt)ó Tùy biến các trường:

55

Phân trang dữ liệuó Thiết lập thuộc tính AllowPaging = trueó Phân trang với Ajax: tương tự GridView:ó Có thể hiệu chỉnh giao

diện phân trang vớithuộc tính PagerSettings

56

Page 194: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

29

Phân trang dữ liệu (tt)

57

Cập nhật dữ liệuó Thiết lập thuộc tínhAutoGenerateEditButton = True

58

Page 195: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

30

Thêm, xóa dữ liệuó Thêm dữ liệu: thiết lập thuộc tínhAutoGenerateInsertButton= Trueó Xóa dữ liệu: thiết lập thuộc tínhAutoGenerateDeleteButton = True

59

Định dạng DetailsViewó Một số thuộc tính

◦ CssClass◦ AlternatingRowStyle◦ CommandRowStyle◦ HeaderStyle◦ FooterStyle◦ PagerStyle◦ RowStyle◦ EditRowStyle◦ InsertRowStyle◦ GridLines◦ HeaderText◦ FooterText

60

Page 196: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

31

Điều khiển FormViewó Tương tự DetailsView, nhưng hiển thị

các phần tử dữ liệu thông qua Templateó Điều khiển FormView được dùng để

hiển thị, phân trang, sửa, chèn và xóacác mẫu tin trong cơ sở dữ liệuó Điều khiển FormView còn cho phép thêm

các điều khiển kiểm chứng dữ liệuó Hiển thị dữ liệu: Thiết kế các thành phần

trong ItemTemplate (tương tự DataList)

61

Phân trang dữ liệuó Thiết lập thuộc tính AllowPaging =Trueó Thay đổi các tùy chọn trong thuộc tính

PagerSettings

62

Page 197: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

32

Phân trang dữ liệu (tt)ó Có thể sử dụng PagerTemplate để tùy

biến giao diện phân trang

63

Phân trang dữ liệu (tt)Thuộc tính CommandArgument có thể có

các giá trị:◦ First◦ Last◦ Prev◦ Next

64

Page 198: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

11/1/2012

33

Cập nhật, thêm và xóa dữ liệuó Chọn Generate INSERT, UPDATE,

DELETE cho SQLDataSource làm dữliệu nguồn của FormView

65

Page 199: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

1

Truy cập cơ sở dữ liệu bằng chương trình

Chương 7

1

Mục tiêu

ó Sau khi học xong chương này, sinh viên có thể: ◦ Hiểu được mô hình truy cập CSDL của

ADO.NET gồm các đối tượng Connection, Command, DataReader, DataAdapter, DataTable, DataView và DataSet.

◦ Biết sử dụng các mô hình của ADO.NET để truy cập và thao tác với cơ sở dữ liệu SQL Server và Microsoft Access bằng mã lệnh

2

Page 200: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

2

Nội dung ó Sử dụng mô hình kết nối để thao tác với cơ

sở dữ liệu ◦ Đối tượng Connection. ◦ Đối tượng Command ◦ Đối tượng DataReader

ó Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu ◦ Đối tượng DataAdapter ◦ Đối tượng DataTable ◦ Đối tượng DataView ◦ Đối tượng DataSet

3

Bài 1. Sử dụng mô hình kết nối để thao tác với cơ sở dữ liệu

ó Giới thiệu ó Đối tượng Connection. ó Đối tượng Command ó Đối tượng DataReader ó Sử dụng mô hình kết nối để thực hiện

các thao tác với cơ sở dữ liệu

4

Page 201: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

3

Giới thiệu ó ADO.NET cho phép làm việc ở cả hai

chế độ: ◦ Chế độ kết nối (Connected) ◦ Chế độ phi kết nối (Disconnected)

Thực hiện nhiệm vụ kết

nối đến CSDL

Thực hiện các câu lệnh SQL thao tác

với CSDL

Đón nhận kết quả trả về từ đối

tượng Command

Cầu nối giữa nguồn dữ liệu và các bảng được cached trong bộ nhớ

Kho chứa các bảng

5

Đối tượng Connection

ó Là đối tượng có nhiệm vụ thực hiện nhiệm vụ kết nối đến CSDL để các đối tượng như Command thao tác với CSDL thông qua kết nối này

Application Database

Connection

6

Page 202: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

4

Đối tượng Connection (tt)

ó Thuộc tính: ◦ ConnectionString: chuỗi kết nối đến

database ◦ State: trạng thái kết nối, thường được sử

dụng để kiểm tra kết nối thành công hay không. VD: if (con.State.ToString() =="Open" )

ó Phương thức: ◦ Open: mở kết nối ◦ Close: đóng kết nối

7

Đối tượng Connection (tt)

ó Đối tượng Connection kết nối với CSDL SqlServer: SqlDataConnection (khai báo namespace System.Data.SqlClient) ó Đối tượng Connection kết nối với CSDL

Access: OleDataConnection (khai báo namespace System.Data.OleDb) ó Khi tạo một đối tượng Connection, chúng ta

phải truyền chuỗi kết nối đến phương thức tạo dựng, hoặc gán chuỗi kết nối vào thuộc tính ConnectionString của đối tượng

8

Page 203: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

5

Đối tượng Connection (tt)

ó Tạo đối tượng Connection

9

Đối tượng Connection (tt)

ó Có thể truy xuất chuỗi kết nối lưu trong trang Web.config thông qua đối tượng WebConfigurationManager (Khai báo namespace System.Web.Configuration)

10

Page 204: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

6

Đối tượng Connection (tt)

ó Chuỗi kết nối trong Web.config

11

Đối tượng Connection (tt)

ó Sử dụng đối tượng Connection: ◦ Trước khi thực thi bất kỳ lệnh nào đối với dữ

liệu, trước hết chúng ta phải mở kết nối. ◦ Sau khi thực thi lệnh xong, chúng ta phải đóng kết nối.

◦ Ngoài ra, cần sử dụng các cơ chế xử lý ngoại lệ nếu có lỗi xảy ra ñ try…catch…finaly ñ Lệnh using: buộc kế nối phải đóng ngay cả khi có

biệt lệ xảy ra

12

Page 205: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

7

Đối tượng Connection (tt)

13

Đối tượng Connection (tt)

ó Các bước thực hiện: ◦ Tạo một Connection. ◦ Mở connection. ◦ Truyền connection cho các đối tượng

ADO.NET khác. ◦ Thực hiện các thao tác database với các đối

tượng ADO.NET này. ◦ Đóng connection.

14

Page 206: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

8

Đối tượng Connection (tt)

ó Các bước thực hiện:

15

Đối tượng Command

ó Dùng để thực hiện các câu lệnh SQL thao tác với CSDL như: Select, Insert, Update, Delete.

Application

Connection

Database Command

16

Page 207: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

9

Đối tượng Command (tt) ó Thuộc tính:

• Connection: kết nối để thực hiện lệnh • CommandText: câu lệnh cần thực hiện • CommandType: loại câu lệnh (Text, TableDirect,

StoredProcedure) • Phương thức:

• ExecuteScalar(): thực hiện câu lệnh và trả về giá trị đơn

• ExecuteNonQuery(): gọi các lệnh SQL, store, trả về số record bị tác động (Insert, Update, Delete…)

• ExecuteReader(): thực hiện câu lệnh trả về đối tượng DataReader

17

Đối tượng Command (tt)

ó Đối tượng Command dùng trong CSDL SqlServer: SqlCommand ó Đối tượng Command dùng trong CSDL

Access: OleDbCommand ó Tạo đối tượng Command

◦ Sử dụng phương thức tạo dựng ◦ Sử dụng phương thức CreateCommand của đối tượng Connection

18

Page 208: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

10

Đối tượng Command (tt)

ó Tạo đối tượng Command (tt)

19

Đối tượng Command (tt)

ó Tạo đối tượng Command (tt) ◦ Có thể thiết lập các thuộc tính cho đối tượng

Command sau khi tạo:

20

Page 209: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

11

Đối tượng Command (tt)

ó Phương thức ExecuteReader: ◦ Phương thức này trả về một tập các bản ghi,

thường được sử dụng để thực thi các câu lệnh truy vấn như Select.

◦ Kết quả có thể lưu trữ trong đối tượng DataReader

21

Đối tượng Command (tt)

ó Phương thức ExecuteScalar: ◦ Trả về một phần tử (cột đầu tiên hàng đầu

tiên) trong bảng kết quả. ◦ Thường được sử dụng thực hiện câu lệnh

truy vấn Select mà kết quả trả về chỉ có một hàng và một cột

22

Page 210: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

12

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery: ◦ Được sử dụng để thực thi các câu lệnh truy

vấn hành động: Insert, Update, Delete…

23

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery (tt):

24

Page 211: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

13

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery (tt):

25

Đối tượng Command (tt)

ó Thực thi lệnh với tham số: ◦ Câu lệnh truy vấn SQL có thể nhận giá trị

thông qua các tham số tại thời điểm thực thi ◦ Cách sử dụng: ñ Tạo tham số trong câu lệnh SQL ñ Khai báo Parameter với những thông tin chính: ñ Tên tham số ñ Kiểu dữ liệu ñ Giá trị

ñ Liên kết Parameter với Command ◦

26

Page 212: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

14

Đối tượng Command (tt)

ó Thực thi lệnh với tham số (tt): ◦

27

Đối tượng DataReader ó Là đối tượng được sử dụng để nhận kết quả trả

về từ đối tượng Command. ó Thuộc tính

• HasRow: cho biết đối tượng DataReader có chứa dữ liệu

• Phương thức: • Read(): đọc một mẫu tin • Close(): đóng • NextResult(): chuyển đến bảng tiếp theo

• Tham chiếu đến các cột trong DataReader: • Sử dụng chỉ số. (reader [0]) • Sử dụng trên trường dữ liệu. (reader[“FirstName”])

28

Page 213: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

15

Đối tượng DataReader

ó Sử dụng DataReader

29

Đối tượng DataReader

ó Sử dụng DataReader nhận về nhiều tập giá trị

30

Page 214: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

16

Sử dụng mô hình kết nối để thao tác với cơ sở dữ liệu ó Để thao tác với cơ sở dữ liệu trong mô

hình kết nối chúng ta cần sử dụng đến các đối tượng: ◦ DataConnection: Dùng để mở kết nối đến cơ

sở dữ liệu. ◦ DataCommand: Dùng để thực hiện các câu

lệnh truy vấn SQL để lấy về dữ liệu (Select) hoặc cập nhật dữ liệu (Insert, Update, Delete).

◦ DataReader: Dùng để nhận và duyệt bảng kết quả từ đối tượng Command

31

Truy vấn lấy dữ liệu ó B1. Tạo đối tượng DataConnection, và mở

kết nối đến cơ sở dữ liệu. ó B2. tạo đối tượng DataCommand gắn với đối tượng DataConnection, kết hợp câu lệnh truy vấn Select ó B3. Khai báo biến đối tượng DataReader ó B4. Thi hành phương thức ExcuteReader()

của biến đối tượng DataCommand và gán cho biến đối tượng DataReader. ó B5. Đọc và trình bày dữ liệu ó B6. Đóng và giải phóng các biến đối tượng

nếu không cần thiết.

32

Page 215: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

17

Truy vấn lấy dữ liệu

33

Truy vấn hành động trên CSDL ó B1. Khai báo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. ó B2. Tạo đối tượng DataCommand gắn với biến đối

tượng DataConnection đã mở. ó B3. Gán giá trị cho thuộc tính CommandType của

biến đối tượng DataCommand ó B4. Gán câu lệnh truy vấn (insert, update, delete, gọi

store procedure…) cho thuộc tính CommandText của biến đối tượng DataCommand

ó B5. Thi hành phương thức ExcuteNonquery() của biến đối tượng DataCommand

ó B6. Đóng và giải phóng các biến đối tượng nếu không cần thiết.

34

Page 216: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

18

Truy vấn hành động trên CSDL

35

Bài 2: Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu

36

Page 217: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

19

Giới thiệu ó Cho phép thao tác với dữ liệu mà không cần duy trì

kết nối ó Ưu điểm của việc sử dụng nhóm đối tượng thuộc

mô hình phi kết nối là chúng cung cấp nhiều chức năng hơn. ◦ Lọc và sắp xếp các hàng (DataView) ◦ Thay đổi nội dung các mẫu tin (DataTable) ◦ …

ó Nhược điểm: tốc độ xử lý chậm. ó Gồm bốn đối tượng:

◦ DataAdapter ◦ DataSet ◦ DataTable ◦ DataView

37

Đối tượng DataAdapter

ó Có chức năng như một cầu nối giữa nguồn dữ liệu và các bảng được cached trong bộ nhớ (đối tượng DataSet). ó DataAdapter điền dữ liệu vào một

DataSet hay DataTable từ một nguồn dữ liệu thông qua phương thức Fill(). ó DataAdapter cập nhật dữ liệu ngược trở

lại nguồn dữ liệu thông qua phương thức Update()

38

Page 218: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

20

Đối tượng DataAdapter (tt)

ó Tạo đối tượng DataAdapter ◦ Từ một đối tượng connection ◦ Từ một chuỗi kết nối

39

Đối tượng DataAdapter (tt)

ó Sử dụng DataAdapter để truy xuất dữ liệu từ cơ sở dữ liệu

40

Page 219: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

21

Đối tượng DataAdapter (tt)

ó Sử dụng DataAdapter để cập nhật dữ liệu ◦ Có thể sử dụng DataAdapter để cập nhật, chèn

và xóa dữ liệu ◦ Sử dụng các thuộc tính InsertCommand,

DeleteCommand và UpdateCommand của đối tượng DataAdapter để cập nhật cơ sở dữ liệu từ DataSet.

◦ Các thuộc tính trên được sinh tự động khi chúng ta tạo lớp DataSet trong môi trường Visual.Net (Strongly Typed Dataset và DataAdapter)

41

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Click chuột phải trên project trong cửa sổ

solution explorer, chọn “Add New Item”, chọn “DataSet”, nhập tên lớp dataset trong ô Name

42

Page 220: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

22

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter:

43

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Cửa sổ “Create TableAdapter” wizard xuất

hiện (nếu cửa sổ này không tự động hiển thị, click chuột phải trên dataset, chọn “Add” èTable Adapter)

44

Page 221: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

23

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Chọn chuỗi kết nối đến CSDL hoặc New

Connection để tạo kết nối mới

45

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Chọn kiểu truy vấn dữ liệu

46

Page 222: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

24

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Click “Query Builder”, chọn các bảng dữ liệu

cần truy vấn

47

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Đặt tên phương thức trong ô Method name

48

Page 223: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

25

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Sử dụng lớp Dataset:

49

Đối tượng DataAdapter (tt)

ó Thực thi truy vấn hành động bằng code ◦ Thiết lập thuộc tính SelectCommand,

InsertCommand, DeleteCommand và UpdateCommand từ đối tượng SqlCommand.

◦ Có thể sử dụng đối tượng CommandBuilder để tạo các UpdateCommand, InsertCommand và DeleteCommand.

◦ Sử dụng phương thức Update() của đối tượng SqlDataAdapter có dạng: ñ int SqlDataAdapter.Update(DataTable)

50

Page 224: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

26

Đối tượng DataAdapter (tt)

51

Đối tượng DataAdapter (tt)

52

Page 225: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

27

Đối tượng DataAdapter (tt)

53

Đối tượng DataAdapter (tt)

54

Page 226: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

28

Đối tượng DataAdapter (tt)

55

Đối tượng DataAdapter (tt)

56

Page 227: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

29

Đối tượng DataAdapter (tt)

57

Đối tượng DataTable

ó Đối tượng DataTable tiêu biểu cho một bảng cơ sở dữ liệu trong bộ nhớ. ó Thuộc tính:

• TableName: tên của bảng dữ liệu • Columns: danh sách các cột • Rows: danh sách các mẫu tin • PrimaryKey: danh sách các cột là khóa chính

• Phương thức: • NewRow(): tạo một mẫu tin mới

58

Page 228: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

30

Đối tượng DataTable (tt)

ó Các thành phần trong DataTable ◦ Mỗi phần tử hàng trong một DataTable là một

DataRow ◦ Mỗi phần tử cột trong DataTable là một

DataColumn ó DataRow:

◦ Phương thức: ñ AcceptChanges(), RejectChanges(): xác nhận hay

loại bỏ mọi sự thay đổi đến hàng trong bảng ñ Remove: đánh dấu hàng bị xóa nếu gọi

AcceptChanges

59

Đối tượng DataTable (tt) ó DataColumn:

◦ ColumnName: tên cột ◦ DataType: kiểu dữ liệu

ó Tạo và thêm dữ liệu vào DataTable: ◦ Tạo đối tượng DataTable ◦ Tạo đối tượng DataColumn, thiết lập các thuộc

tính cho đối tượng ◦ Thêm các DataColumn vào tập Columns của đối

tượng DataTable ◦ Tạo đối tượng DataRow, thiết lập giá trị cho các

ô trong DataRow ◦ Thêm đối tượng DataRow vào tập Rows của đối

tượng DataTable

60

Page 229: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

31

Đối tượng DataTable (tt)

61

Đối tượng DataTable (tt)

ó Có thể truy xuất các mẫu tin từ đối tượng DataTable bằng cách sử dụng phương thức Select() ó Khi truy xuất một mảng các mẫu tin bằng

phương thức Select(), có thể chỉ định thứ tự sắp xếp cho các mẫu tin (Ex909.aspx)

62

Page 230: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

32

Đối tượng DataTable (tt)

ó )

63

Đối tượng DataTable (tt)

64

Page 231: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

33

Đối tượng DataTable (tt)

ó Khi sửa đổi các hàng trong DataTable, DataTable sẽ duy trì cả hai bản gốc (original version) và bản đã sửa của mỗi hàng (modified version) ó Phương thức DataTable.AcceptChanges() được sử dụng để sao chép bản hiện tại của tất cả các hàng đến bản gốc tương ứng ó Phương thức DataTable.RejectChanges() được sử dụng để sao chép bản gốc của tất cả các hàng đến bản hiện tại tương ứng

65

Đối tượng DataTable (tt)

66

Page 232: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

34

Đối tượng DataView

ó Là đối tượng được sử dụng để lọc, sắp xếp dữ liệu từ DataTable ó Đối tượng DataView có hai thuộc tính

quan trọng: ◦ Sort: sắp xếp dữ liệu

dataView.Sort =“Fieldname”; ◦ RowFilter: lọc dữ liệu

dataView.RowFilter = “Alias like ‘abc%’”;

67

Đối tượng DataView (tt)

ó Tạo đối tượng DataView ◦ DataView dataView = new

DataView(dataTable); Hoặc

◦ DataView dataView = dataTable.DefaultView;

68

Page 233: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

35

Đối tượng DataView (tt)

69

Đối tượng DataSet ó Đối tượng DataSet thể hiện cho cơ sở dữ

liệu trong bộ nhớ. ó Một DataSet có thể chứa một hay nhiều đối

tượng DataTable. ó Các bảng trong DataSet có thể là dữ liệu đổ

vào từ DataAdapter (sử dụng phương thức Fill) hoặc được tạo thành từ các đối tượng DataTable. ó Có thể cập nhật dữ liệu từ các bảng này

vào cơ sở dữ liệu thông qua phương thức Update của đối tượng DataAdapter.

70

Page 234: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

36

Đối tượng DataSet (tt) ó Đặc điểm của DataSet

◦ Không kết nối với nguồn dữ liệu. ◦ Không phân biệt dữ liệu thuộc nguồn nào (SQL

Server, OLE DB, ODBC, …). ◦ Có thể lưu trữ dữ liệu từ nhiều bảng (Table),

nhiều nguồn (Data Source) khác nhau. ó Truy xuất bảng trong DataSet:

◦ dsName.Tables[index] ◦ Hoặc dsName.Tables[“DataTableName”]

ó Thêm hoặc xóa bảng bằng phương thức Add, Remove của tập Tables

71

Đối tượng DataSet (tt)

72

Page 235: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

37

Đối tượng DataSet (tt)

73

Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu ó Để thao tác với cơ sở dữ liệu trong mô

hình phi kết nối chúng ta cần sử dụng đến các đối tượng: ◦ DataConnection: Dùng để mở kết nối đến cơ

sở dữ liệu. (Có thể có hoặc không) ◦ DataAdapter ◦ DataSet ◦ DataTable, DataRow…

74

Page 236: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

38

Truy vấn lấy dữ liệu ó B1. Tạo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. (có thể không sử dụng) ó B2. Tạo đối tượng DataAdapter gắn với đối

tượng DataConnection đã mở hoặc một chuỗi kết nối đến cơ sở dữ liệu, kết hợp với câu truy vấn select.

ó B3. Gọi phương thức Fill để điền dữ liệu lấy về vào DataSet (hoặc DataTable)

ó B4. Sử dụng tập hợp Tables của đối tượng DataSet để làm việc với dữ liệu đã lấy về.

ó B5. Đóng hoặc giải phóng các đối tượng nếu không cần thiết

75

Truy vấn lấy dữ liệu

76

Page 237: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

39

Truy vấn hành động trên CSDL ó B1. Tạo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. (có thể không sử dụng). ó B2. Khai báo và tạo đối tượng DataAdapter ó B3. Thay đổi dữ liệu trên bảng dữ liệu nằm trong

DataSet. ó B4. Tạo đối tượng CommandBuilder gắn với

biến đối tượng DataAdapter. ó B5. Thi hành phương thức Update để cập nhật

sự thay đổi dữ liệu trong bảng lên cơ sở dữ liệu. ó B6. Đóng và giải phóng các biến đối tượng nếu

không cần thiết

77

Truy vấn hành động trên CSDL

78

Page 238: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

1

Truy cập cơ sở dữ liệu bằng chương trình

Chương 7

1

Mục tiêu

ó Sau khi học xong chương này, sinh viên có thể: ◦ Hiểu được mô hình truy cập CSDL của

ADO.NET gồm các đối tượng Connection, Command, DataReader, DataAdapter, DataTable, DataView và DataSet.

◦ Biết sử dụng các mô hình của ADO.NET để truy cập và thao tác với cơ sở dữ liệu SQL Server và Microsoft Access bằng mã lệnh

2

Page 239: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

2

Nội dung ó Sử dụng mô hình kết nối để thao tác với cơ

sở dữ liệu ◦ Đối tượng Connection. ◦ Đối tượng Command ◦ Đối tượng DataReader

ó Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu ◦ Đối tượng DataAdapter ◦ Đối tượng DataTable ◦ Đối tượng DataView ◦ Đối tượng DataSet

3

Bài 1. Sử dụng mô hình kết nối để thao tác với cơ sở dữ liệu

ó Giới thiệu ó Đối tượng Connection. ó Đối tượng Command ó Đối tượng DataReader ó Sử dụng mô hình kết nối để thực hiện

các thao tác với cơ sở dữ liệu

4

Page 240: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

3

Giới thiệu ó ADO.NET cho phép làm việc ở cả hai

chế độ: ◦ Chế độ kết nối (Connected) ◦ Chế độ phi kết nối (Disconnected)

Thực hiện nhiệm vụ kết

nối đến CSDL

Thực hiện các câu lệnh SQL thao tác

với CSDL

Đón nhận kết quả trả về từ đối

tượng Command

Cầu nối giữa nguồn dữ liệu và các bảng được cached trong bộ nhớ

Kho chứa các bảng

5

Đối tượng Connection

ó Là đối tượng có nhiệm vụ thực hiện nhiệm vụ kết nối đến CSDL để các đối tượng như Command thao tác với CSDL thông qua kết nối này

Application Database

Connection

6

Page 241: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

4

Đối tượng Connection (tt)

ó Thuộc tính: ◦ ConnectionString: chuỗi kết nối đến

database ◦ State: trạng thái kết nối, thường được sử

dụng để kiểm tra kết nối thành công hay không. VD: if (con.State.ToString() =="Open" )

ó Phương thức: ◦ Open: mở kết nối ◦ Close: đóng kết nối

7

Đối tượng Connection (tt)

ó Đối tượng Connection kết nối với CSDL SqlServer: SqlDataConnection (khai báo namespace System.Data.SqlClient) ó Đối tượng Connection kết nối với CSDL

Access: OleDataConnection (khai báo namespace System.Data.OleDb) ó Khi tạo một đối tượng Connection, chúng ta

phải truyền chuỗi kết nối đến phương thức tạo dựng, hoặc gán chuỗi kết nối vào thuộc tính ConnectionString của đối tượng

8

Page 242: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

5

Đối tượng Connection (tt)

ó Tạo đối tượng Connection

9

Đối tượng Connection (tt)

ó Có thể truy xuất chuỗi kết nối lưu trong trang Web.config thông qua đối tượng WebConfigurationManager (Khai báo namespace System.Web.Configuration)

10

Page 243: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

6

Đối tượng Connection (tt)

ó Chuỗi kết nối trong Web.config

11

Đối tượng Connection (tt)

ó Sử dụng đối tượng Connection: ◦ Trước khi thực thi bất kỳ lệnh nào đối với dữ

liệu, trước hết chúng ta phải mở kết nối. ◦ Sau khi thực thi lệnh xong, chúng ta phải đóng kết nối.

◦ Ngoài ra, cần sử dụng các cơ chế xử lý ngoại lệ nếu có lỗi xảy ra ñ try…catch…finaly ñ Lệnh using: buộc kế nối phải đóng ngay cả khi có

biệt lệ xảy ra

12

Page 244: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

7

Đối tượng Connection (tt)

13

Đối tượng Connection (tt)

ó Các bước thực hiện: ◦ Tạo một Connection. ◦ Mở connection. ◦ Truyền connection cho các đối tượng

ADO.NET khác. ◦ Thực hiện các thao tác database với các đối

tượng ADO.NET này. ◦ Đóng connection.

14

Page 245: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

8

Đối tượng Connection (tt)

ó Các bước thực hiện:

15

Đối tượng Command

ó Dùng để thực hiện các câu lệnh SQL thao tác với CSDL như: Select, Insert, Update, Delete.

Application

Connection

Database Command

16

Page 246: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

9

Đối tượng Command (tt) ó Thuộc tính:

• Connection: kết nối để thực hiện lệnh • CommandText: câu lệnh cần thực hiện • CommandType: loại câu lệnh (Text, TableDirect,

StoredProcedure) • Phương thức:

• ExecuteScalar(): thực hiện câu lệnh và trả về giá trị đơn

• ExecuteNonQuery(): gọi các lệnh SQL, store, trả về số record bị tác động (Insert, Update, Delete…)

• ExecuteReader(): thực hiện câu lệnh trả về đối tượng DataReader

17

Đối tượng Command (tt)

ó Đối tượng Command dùng trong CSDL SqlServer: SqlCommand ó Đối tượng Command dùng trong CSDL

Access: OleDbCommand ó Tạo đối tượng Command

◦ Sử dụng phương thức tạo dựng ◦ Sử dụng phương thức CreateCommand của đối tượng Connection

18

Page 247: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

10

Đối tượng Command (tt)

ó Tạo đối tượng Command (tt)

19

Đối tượng Command (tt)

ó Tạo đối tượng Command (tt) ◦ Có thể thiết lập các thuộc tính cho đối tượng

Command sau khi tạo:

20

Page 248: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

11

Đối tượng Command (tt)

ó Phương thức ExecuteReader: ◦ Phương thức này trả về một tập các bản ghi,

thường được sử dụng để thực thi các câu lệnh truy vấn như Select.

◦ Kết quả có thể lưu trữ trong đối tượng DataReader

21

Đối tượng Command (tt)

ó Phương thức ExecuteScalar: ◦ Trả về một phần tử (cột đầu tiên hàng đầu

tiên) trong bảng kết quả. ◦ Thường được sử dụng thực hiện câu lệnh

truy vấn Select mà kết quả trả về chỉ có một hàng và một cột

22

Page 249: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

12

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery: ◦ Được sử dụng để thực thi các câu lệnh truy

vấn hành động: Insert, Update, Delete…

23

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery (tt):

24

Page 250: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

13

Đối tượng Command (tt)

ó Phương thức ExecuteNonQuery (tt):

25

Đối tượng Command (tt)

ó Thực thi lệnh với tham số: ◦ Câu lệnh truy vấn SQL có thể nhận giá trị

thông qua các tham số tại thời điểm thực thi ◦ Cách sử dụng: ñ Tạo tham số trong câu lệnh SQL ñ Khai báo Parameter với những thông tin chính: ñ Tên tham số ñ Kiểu dữ liệu ñ Giá trị

ñ Liên kết Parameter với Command ◦

26

Page 251: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

14

Đối tượng Command (tt)

ó Thực thi lệnh với tham số (tt): ◦

27

Đối tượng DataReader ó Là đối tượng được sử dụng để nhận kết quả trả

về từ đối tượng Command. ó Thuộc tính

• HasRow: cho biết đối tượng DataReader có chứa dữ liệu

• Phương thức: • Read(): đọc một mẫu tin • Close(): đóng • NextResult(): chuyển đến bảng tiếp theo

• Tham chiếu đến các cột trong DataReader: • Sử dụng chỉ số. (reader [0]) • Sử dụng trên trường dữ liệu. (reader[“FirstName”])

28

Page 252: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

15

Đối tượng DataReader

ó Sử dụng DataReader

29

Đối tượng DataReader

ó Sử dụng DataReader nhận về nhiều tập giá trị

30

Page 253: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

16

Sử dụng mô hình kết nối để thao tác với cơ sở dữ liệu ó Để thao tác với cơ sở dữ liệu trong mô

hình kết nối chúng ta cần sử dụng đến các đối tượng: ◦ DataConnection: Dùng để mở kết nối đến cơ

sở dữ liệu. ◦ DataCommand: Dùng để thực hiện các câu

lệnh truy vấn SQL để lấy về dữ liệu (Select) hoặc cập nhật dữ liệu (Insert, Update, Delete).

◦ DataReader: Dùng để nhận và duyệt bảng kết quả từ đối tượng Command

31

Truy vấn lấy dữ liệu ó B1. Tạo đối tượng DataConnection, và mở

kết nối đến cơ sở dữ liệu. ó B2. tạo đối tượng DataCommand gắn với đối tượng DataConnection, kết hợp câu lệnh truy vấn Select ó B3. Khai báo biến đối tượng DataReader ó B4. Thi hành phương thức ExcuteReader()

của biến đối tượng DataCommand và gán cho biến đối tượng DataReader. ó B5. Đọc và trình bày dữ liệu ó B6. Đóng và giải phóng các biến đối tượng

nếu không cần thiết.

32

Page 254: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

17

Truy vấn lấy dữ liệu

33

Truy vấn hành động trên CSDL ó B1. Khai báo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. ó B2. Tạo đối tượng DataCommand gắn với biến đối

tượng DataConnection đã mở. ó B3. Gán giá trị cho thuộc tính CommandType của

biến đối tượng DataCommand ó B4. Gán câu lệnh truy vấn (insert, update, delete, gọi

store procedure…) cho thuộc tính CommandText của biến đối tượng DataCommand

ó B5. Thi hành phương thức ExcuteNonquery() của biến đối tượng DataCommand

ó B6. Đóng và giải phóng các biến đối tượng nếu không cần thiết.

34

Page 255: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

18

Truy vấn hành động trên CSDL

35

Bài 2: Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu

36

Page 256: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

19

Giới thiệu ó Cho phép thao tác với dữ liệu mà không cần duy trì

kết nối ó Ưu điểm của việc sử dụng nhóm đối tượng thuộc

mô hình phi kết nối là chúng cung cấp nhiều chức năng hơn. ◦ Lọc và sắp xếp các hàng (DataView) ◦ Thay đổi nội dung các mẫu tin (DataTable) ◦ …

ó Nhược điểm: tốc độ xử lý chậm. ó Gồm bốn đối tượng:

◦ DataAdapter ◦ DataSet ◦ DataTable ◦ DataView

37

Đối tượng DataAdapter

ó Có chức năng như một cầu nối giữa nguồn dữ liệu và các bảng được cached trong bộ nhớ (đối tượng DataSet). ó DataAdapter điền dữ liệu vào một

DataSet hay DataTable từ một nguồn dữ liệu thông qua phương thức Fill(). ó DataAdapter cập nhật dữ liệu ngược trở

lại nguồn dữ liệu thông qua phương thức Update()

38

Page 257: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

20

Đối tượng DataAdapter (tt)

ó Tạo đối tượng DataAdapter ◦ Từ một đối tượng connection ◦ Từ một chuỗi kết nối

39

Đối tượng DataAdapter (tt)

ó Sử dụng DataAdapter để truy xuất dữ liệu từ cơ sở dữ liệu

40

Page 258: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

21

Đối tượng DataAdapter (tt)

ó Sử dụng DataAdapter để cập nhật dữ liệu ◦ Có thể sử dụng DataAdapter để cập nhật, chèn

và xóa dữ liệu ◦ Sử dụng các thuộc tính InsertCommand,

DeleteCommand và UpdateCommand của đối tượng DataAdapter để cập nhật cơ sở dữ liệu từ DataSet.

◦ Các thuộc tính trên được sinh tự động khi chúng ta tạo lớp DataSet trong môi trường Visual.Net (Strongly Typed Dataset và DataAdapter)

41

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Click chuột phải trên project trong cửa sổ

solution explorer, chọn “Add New Item”, chọn “DataSet”, nhập tên lớp dataset trong ô Name

42

Page 259: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

22

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter:

43

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Cửa sổ “Create TableAdapter” wizard xuất

hiện (nếu cửa sổ này không tự động hiển thị, click chuột phải trên dataset, chọn “Add” èTable Adapter)

44

Page 260: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

23

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Chọn chuỗi kết nối đến CSDL hoặc New

Connection để tạo kết nối mới

45

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Chọn kiểu truy vấn dữ liệu

46

Page 261: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

24

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Click “Query Builder”, chọn các bảng dữ liệu

cần truy vấn

47

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Đặt tên phương thức trong ô Method name

48

Page 262: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

25

Đối tượng DataAdapter (tt)

ó Strongly Typed Dataset – DataAdapter: ◦ Sử dụng lớp Dataset:

49

Đối tượng DataAdapter (tt)

ó Thực thi truy vấn hành động bằng code ◦ Thiết lập thuộc tính SelectCommand,

InsertCommand, DeleteCommand và UpdateCommand từ đối tượng SqlCommand.

◦ Có thể sử dụng đối tượng CommandBuilder để tạo các UpdateCommand, InsertCommand và DeleteCommand.

◦ Sử dụng phương thức Update() của đối tượng SqlDataAdapter có dạng: ñ int SqlDataAdapter.Update(DataTable)

50

Page 263: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

26

Đối tượng DataAdapter (tt)

51

Đối tượng DataAdapter (tt)

52

Page 264: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

27

Đối tượng DataAdapter (tt)

53

Đối tượng DataAdapter (tt)

54

Page 265: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

28

Đối tượng DataAdapter (tt)

55

Đối tượng DataAdapter (tt)

56

Page 266: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

29

Đối tượng DataAdapter (tt)

57

Đối tượng DataTable

ó Đối tượng DataTable tiêu biểu cho một bảng cơ sở dữ liệu trong bộ nhớ. ó Thuộc tính:

• TableName: tên của bảng dữ liệu • Columns: danh sách các cột • Rows: danh sách các mẫu tin • PrimaryKey: danh sách các cột là khóa chính

• Phương thức: • NewRow(): tạo một mẫu tin mới

58

Page 267: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

30

Đối tượng DataTable (tt)

ó Các thành phần trong DataTable ◦ Mỗi phần tử hàng trong một DataTable là một

DataRow ◦ Mỗi phần tử cột trong DataTable là một

DataColumn ó DataRow:

◦ Phương thức: ñ AcceptChanges(), RejectChanges(): xác nhận hay

loại bỏ mọi sự thay đổi đến hàng trong bảng ñ Remove: đánh dấu hàng bị xóa nếu gọi

AcceptChanges

59

Đối tượng DataTable (tt) ó DataColumn:

◦ ColumnName: tên cột ◦ DataType: kiểu dữ liệu

ó Tạo và thêm dữ liệu vào DataTable: ◦ Tạo đối tượng DataTable ◦ Tạo đối tượng DataColumn, thiết lập các thuộc

tính cho đối tượng ◦ Thêm các DataColumn vào tập Columns của đối

tượng DataTable ◦ Tạo đối tượng DataRow, thiết lập giá trị cho các

ô trong DataRow ◦ Thêm đối tượng DataRow vào tập Rows của đối

tượng DataTable

60

Page 268: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

31

Đối tượng DataTable (tt)

61

Đối tượng DataTable (tt)

ó Có thể truy xuất các mẫu tin từ đối tượng DataTable bằng cách sử dụng phương thức Select() ó Khi truy xuất một mảng các mẫu tin bằng

phương thức Select(), có thể chỉ định thứ tự sắp xếp cho các mẫu tin (Ex909.aspx)

62

Page 269: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

32

Đối tượng DataTable (tt)

ó )

63

Đối tượng DataTable (tt)

64

Page 270: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

33

Đối tượng DataTable (tt)

ó Khi sửa đổi các hàng trong DataTable, DataTable sẽ duy trì cả hai bản gốc (original version) và bản đã sửa của mỗi hàng (modified version) ó Phương thức DataTable.AcceptChanges() được sử dụng để sao chép bản hiện tại của tất cả các hàng đến bản gốc tương ứng ó Phương thức DataTable.RejectChanges() được sử dụng để sao chép bản gốc của tất cả các hàng đến bản hiện tại tương ứng

65

Đối tượng DataTable (tt)

66

Page 271: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

34

Đối tượng DataView

ó Là đối tượng được sử dụng để lọc, sắp xếp dữ liệu từ DataTable ó Đối tượng DataView có hai thuộc tính

quan trọng: ◦ Sort: sắp xếp dữ liệu

dataView.Sort =“Fieldname”; ◦ RowFilter: lọc dữ liệu

dataView.RowFilter = “Alias like ‘abc%’”;

67

Đối tượng DataView (tt)

ó Tạo đối tượng DataView ◦ DataView dataView = new

DataView(dataTable); Hoặc

◦ DataView dataView = dataTable.DefaultView;

68

Page 272: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

35

Đối tượng DataView (tt)

69

Đối tượng DataSet ó Đối tượng DataSet thể hiện cho cơ sở dữ

liệu trong bộ nhớ. ó Một DataSet có thể chứa một hay nhiều đối

tượng DataTable. ó Các bảng trong DataSet có thể là dữ liệu đổ

vào từ DataAdapter (sử dụng phương thức Fill) hoặc được tạo thành từ các đối tượng DataTable. ó Có thể cập nhật dữ liệu từ các bảng này

vào cơ sở dữ liệu thông qua phương thức Update của đối tượng DataAdapter.

70

Page 273: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

36

Đối tượng DataSet (tt) ó Đặc điểm của DataSet

◦ Không kết nối với nguồn dữ liệu. ◦ Không phân biệt dữ liệu thuộc nguồn nào (SQL

Server, OLE DB, ODBC, …). ◦ Có thể lưu trữ dữ liệu từ nhiều bảng (Table),

nhiều nguồn (Data Source) khác nhau. ó Truy xuất bảng trong DataSet:

◦ dsName.Tables[index] ◦ Hoặc dsName.Tables[“DataTableName”]

ó Thêm hoặc xóa bảng bằng phương thức Add, Remove của tập Tables

71

Đối tượng DataSet (tt)

72

Page 274: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

37

Đối tượng DataSet (tt)

73

Sử dụng mô hình phi kết nối để thao tác với cơ sở dữ liệu ó Để thao tác với cơ sở dữ liệu trong mô

hình phi kết nối chúng ta cần sử dụng đến các đối tượng: ◦ DataConnection: Dùng để mở kết nối đến cơ

sở dữ liệu. (Có thể có hoặc không) ◦ DataAdapter ◦ DataSet ◦ DataTable, DataRow…

74

Page 275: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

38

Truy vấn lấy dữ liệu ó B1. Tạo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. (có thể không sử dụng) ó B2. Tạo đối tượng DataAdapter gắn với đối

tượng DataConnection đã mở hoặc một chuỗi kết nối đến cơ sở dữ liệu, kết hợp với câu truy vấn select.

ó B3. Gọi phương thức Fill để điền dữ liệu lấy về vào DataSet (hoặc DataTable)

ó B4. Sử dụng tập hợp Tables của đối tượng DataSet để làm việc với dữ liệu đã lấy về.

ó B5. Đóng hoặc giải phóng các đối tượng nếu không cần thiết

75

Truy vấn lấy dữ liệu

76

Page 276: ASPNET Framework – Bảo trì trạng thái ứng d ngdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/lap-trinh-web/file... · 1 Chương I ASPNET Framework – Bảo trì trạng

22.11.2012

39

Truy vấn hành động trên CSDL ó B1. Tạo đối tượng DataConnection, và mở kết

nối đến cơ sở dữ liệu. (có thể không sử dụng). ó B2. Khai báo và tạo đối tượng DataAdapter ó B3. Thay đổi dữ liệu trên bảng dữ liệu nằm trong

DataSet. ó B4. Tạo đối tượng CommandBuilder gắn với

biến đối tượng DataAdapter. ó B5. Thi hành phương thức Update để cập nhật

sự thay đổi dữ liệu trong bảng lên cơ sở dữ liệu. ó B6. Đóng và giải phóng các biến đối tượng nếu

không cần thiết

77

Truy vấn hành động trên CSDL

78