Trường Cao Đẳng CNTT TP.HCM Khoa công nghệ thông tin
Mục tiêu
LẬP TRÌNH WEBSITE
Giảng Viên: Dương Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net Tel: 0918158670 – 08.3.7900261 Lịch tiếp SV tại văn phòng khoa: Sáng thứ 5 (9h00 (cid:206) 11h30)
(cid:57) Phát triển được các ứng dụng Web trên nền tảng công nghệ ASP.Net bằng cách sử dụng phần mềm MS Visual Studio 2005 với ngôn ngữ lập trình C#. (cid:57) Tổng hợp với kiến thức các môn chuyên ngành để xây dựng các ứng dụng như các ứng dụng web về thương mại điện tử, các mạng thông tin lớn, website của các tổ chức, doanh nghiệp hoạt động chuyên nghiệp trên môi trường Internet. (cid:57) Quản trị, bảo trì và nâng cấp hệ thống website của các tổ chức, doanh nghiệp, cá nhân. (cid:57) Đáp ứng đủ kiến thức nền tảng để nghiên cứu các công nghệ, giải pháp về lĩnh vực web … (cid:57)Thực hiện tốt các đồ án môn học, thực tập tốt nghiệp, luận văn tốt nghiệp theo hướng Web.
22
1 1
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
Điều kiện
Sinh viên đã học và đạt các học phần sau. (cid:153) Thiết kế web (HTML,Css,JavaScript , Dreamweaver. . ) (cid:153) Cơ sở dữ liệu & Hệ quản trị cơ sở dữ liệu SQLServer. (cid:153) Ngôn ngữ lập trình C#. (cid:153) Đồ họa ứng dụng Học phần được học song hành. (cid:153) Phân tích thiết kế hệ thống thông tin
44
33
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Trong quá trình học tập sẽ phải thành lập và làm việc nhóm để thực hiện Serminar, Project nên các bạn sẽ đạt các mục tiêu về kỹ năng như: (cid:153) Phát huy tốt phương pháp học tập tích cực và chủ động. Làm việc theo mục tiêu, theo kế hoạch (cid:153) Trình bày được báo cáo một đề tài theo qui định. (cid:153) Tư duy, phân tích và ra quyết định giải quyết vấn đề. (cid:153) Mở rộng nâng cao kiến thức môn học, ứng dụng vào thực tiễn
Thời lượng
Đánh giá kết quả học tập
(cid:153) Tham gia học tập trên lớp (đầy đủ, chuẩn bị bài tốt,
tích cực thảo luận và phát biểu, …): 10%
(cid:153) Điểm thực hành: 20% thực hiện bài tập lớn và đánh giá vấn đáp(Đủ điều kiện trong quá trình học thực hành)
(cid:153) Kiểm tra giữa kỳ : 10% (trắc nghiệm) + Báo cáo bài
tậ lớn.
(cid:153) Thực hiện Seminar: Cộng điểm
(cid:153) Kiểm tra cuối kỳ : 50% (Trắc nghiệm + tự luận, thời
gian 90’, không sử dụng tài liệu)
66
55
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Thời gian: 4 Tín chỉ Cụ thể Tổng số tiết: 90 tiết Lý thuyết: 45 tiết 3 tiết / tuần x 15 tuần Thực hành: 45 tiết 5 tiết / tuần x 9 tuần
Nhiệm vụ của sinh viên
Phần mềm thực hành
88
77
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Xem bài giảng và tài liệu tham khảo trước mỗi buổi lên Phần mềm chính để lập trình ứng dụng lớp. (cid:190) Microsoft SQLServer 2005 /2008 (cid:153) Tích cực tham gia phát biểu, đóng góp ý kiến xây (cid:190) Microsoft Visual .Net 2005/2008 với ngôn ngữ C# dựng bài. (cid:153) Chia nhóm để làm bài tập và báo cáo do giảng viên Phần mềm hỗ trợ thực hiện bài tập lớn giao. (cid:190) Adobe Photoshop (cid:153) Tự giác tìm tài liệu, nghiên cứu và thảo luận nhóm khi (cid:190) Macromedia Flash ở nhà. (cid:153) Nghiêm túc làm tất cả các bài tập trong giờ thực hành.
NỘI DỤNG TÓM TẮT
Tài liệu học tập và tham khảo
[1] Dương Thành Phết, Bài giảng Lập trình ứng dụng Web ASP.Net với C#, Khoa công nghệ thông tin, Trường cao đẳng CNTT TP.HCM (2010).
[2] Dương Thành Phết, Bài tập thực hành Lập trình ứng dụng Web ASP.Net với C#, Khoa công nghệ thông tin, Trường cao đẳng CNTT TP.HCM (2010). ---------- (cid:190) Chương 1: Tổng Quan Về ASP.Net (cid:190) Chương 2: Các Đối Tượng Trong ASP.Net (cid:190) Chương 3: Các Điều Khiển WebServer (cid:190) Chương 4: Các điều khiển kiểm tra dữ liệu (cid:190) Chương 5: Các Điều Khiển Dữ Liệu (cid:190) Chương 6: Lập Trình Web Với ADO.Net (cid:190) Chương 7: User Controls & Master Pages (cid:190) Chương 8: Công nghệ và dịch vụ web (cid:190) Chương 9: Bảo mật và quản trị website
[3] Mesbah Ahmed , Chris Garrett , Jeremy Faircloth, Chris Payne , Wei Meng Lee , Jonothon Ortiz (2002), ASP.NET Web Developer’s Guide, Syngress.
1010
9
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
[4] Microsoft Press, Build A Website Now with Visual Web Developer 2005 Express Edition, 2006.
(cid:153) Hiểu biết được các khái niệm tổng quan liên quan về công nghệ lập trình web động và quản lý ứng dụng thông qua các đối tượng trong ASP.Net [Ch1,2].
(cid:153) Điểm đặc biệt là áp dụng kết nối ứng dụng với cơ sở dữ liệu để khai thác và tương tác với người dùng, xây dựng các trang quản trị, và giỏ hàng trong thương mại điện tử sử dụng công nghệ ADO.Net [Ch7].
(cid:153) Cuối cùng sẽ lĩnh hội những kiến thức liên quan đến các công nghệ web mới như: Ajax, Webservice, vấn đề bảo mật cũng như việc Upload đưa website lên webserver để vận hành. [Ch8,9].
1111
1212
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Sử dụng thành thạo công cụ MS Visual 2005 để thiết kế các website gồm các điều khiển trình chủ, điều khiển kiểm tra dữ liệu, điều khiển liên kết dữ liệu cũng như các điều khiển đặc biệt khác. Tận dụng tính hữu dụng của công cụ để xây dựng nhóm các điều khiển dùng chung (User control) và thiết kế bố cục webssite thông qua Masterpage [Ch3,4,5,6].
Chương 1 Tổng Quan Về ASP.Net
Chương 2 Các Đối Tượng Trong ASP.Net
1313
1414
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1.1 Giới thiệu về ASP.Net và .Net Framework 1.2 Tạo ứng dụng Web với Microsoft Visual 2005 1.3 Các thành phần giao diện trên VS .Net 2.1. Đối tượng Response Và Request 2.2. Đối tượng Application Và Session 2.3. Đối tượng Server Và Cookies 2.4. Tập tin Global.asax Và Web.config 1.4 Triển khai ứng dụng web
Chương 3 Các Điều Khiển WebServer
Chương 4 Các Điều Khiển Kiểm Tra Dữ Liệu
1515
1616
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
3.1 Tổng quan về ASP.Net Server Control 3.2 HTML Control 4.1 Giới thiệu chung 4.2 Các Điều khiển kiểm tra dữ liệu 3.3 WebSever Control 3.4 Các điều khiển khác 3.5 Đối tượng ViewState
Chương 5 Các Điều Khiển Liên Kết CSDL
Chương 06 Thiết kế Layout Web
5.1 Điều khiển kết nối cơ sở dữ liệu 5.2 Điều khiển liên kết cơ sở dữ liệu
1717
1818
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
6.1 Web User controls 6.2 Master Pages 6.3 Themes Và Skin 6.4 Site Navigation Controls
Chương 7 Lập Trình Web Với ADO.Net
Chương 8 Công Nghệ Và Dịch Vụ Web
1919
2020
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
7.1 Tổng quan về ADO.Net 8.1 Công nghệ web 2 – Ajax 8.2. Dịch vụ web - Webservice 7.2 Các đối tượng trong ADO.Net 7.3 Xây dựng lớp xử lý dữ liệu 7.4 Xử lý giỏ hàng cho website thương mại điện tử
LỊCH TRÌNH DẠY & HỌC
Chương 9 Bảo Mật & Quản Trị Website
2121
2222
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
9.1 Bảo mật Website 9.2 Quản trị Website
Sản phẩm học tập
2323
2424
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Sản phẩm học tập
Chương 1 Tổng Quan Về ASP.Net
2525
2626
Trung Tâm CEE
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1.1 Giới thiệu về ASP.Net và .Net Framework 1.2 Tạo ứng dụng Web với Microsoft Visual 2005 1.3 Các thành phần giao diện trên VS .Net 1.4 Triển khai ứng dụng web
1.1. Giới thiệu về ASP.Net và .Net Framework
1.1.1 Tìm hiểu về ASP.Net
1.1.1 Tìm hiểu về ASP.Net
1.1.2 Những ưu điểm của ASP.Net (cid:190)Cuối thập niên 90, ASP (Active Server Page) đã được nhiều lập trình viên lựa chọn để xây dựng và phát triển ứng dụng web động trên máy chủ hệ điều hành Windows.
1.1.3 Quá trình xử lý tập tin .Aspx
1.1.4 Tìm hiểu về .Net Phatform và .Net Framework
2727
2828
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:190)ASP thể hiện những ưu điểm với mô hình lập trình thủ tục đơn giản, sử dụng hiệu quả các đối tượng: ADO (ActiveX Data Object) - Xử lý dữ liệu, FSO (File System Object) - Làm việc với hệ thống tập tin… ASP cũng hỗ trợ nhiều ngôn ngữ: VBScript, JavaScript (cid:206) Được yêu thích trong thời gian dài
(cid:190) Tuy nhiên, ASP còn tồn đọng một số khó khăn như: (cid:131) Code ASP và HTML lẫn lộn, viết code khó khăn, (cid:190) ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server dựa trên nền tảng của Microsoft .Net Framework. (cid:131) Hạn chế khả năng sử dụng lại code. (cid:131) Triển khai không được biên dịch dễ mất code (cid:190) Mã lệnh ở phía server sẽ được biên dịch và thi hành tại Web Server kết quả được chuyển sang HTML/ JavaScript/ CSS và trả về cho Client. (cid:131) Hạn chế về tốc độ, quá trình Postback khó khăn, …
(cid:190)Tất cả các xử lý lệnh ASP, ASP.Net đều được thực hiện tại Server và do đó, gọi là kỹ thuật lập trình ở phía server. (cid:190) Năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web mới là ASP.Net.
2929
3030
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:190) Với ASP.Net, không những không cần phải biết các tag HTML, thiết kế web, mà còn hỗ trợ mạnh lập trình hướng đối tượng trong quá trình xây dựng và phát triển ứng dụng Web.
1.1.2 Những ưu điểm của ASP.Net
(cid:190)ASP.Net cho phép lựa chọn một trong các ngôn ngữ lập trình : Visual Basic.Net, J#, C#,… (cid:190)ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của .Net Framework, làm việc với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.Net, … (cid:190)ASPX và ASP cùng hoạt động trong 1 ứng dụng.
3131
3232
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:190)Trang ASP.Net được biên dịch thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả. Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuật thông dịch của ASP. (cid:190)ASP.Net sử dụng phong cách lập trình Code behide(Tách code riêng, giao diện riêng) Dễ đọc, dễ quản lý và bảo trì. (cid:190)Kiến trúc lập trình giống ứng dụng trên Windows.
1.1.3 Quá trình xử lý tập tin .Aspx
Không cần lock, không cần đăng ký DLL
Cho phép nhiều hình thức cấu hình ứng dụng
(cid:190)Hỗ trợ quản lý trạng thái của các control Khi Web server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tin được yêu cầu thông qua chuỗi URL được gởi về, sau đó, tiến hành xử lý theo sơ đồ sau (cid:190)Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser (cid:190)Triển khai cài đặt
Global.aspx có nhiều sự kiện hơn
Quản lý session trên nhiều Server, không cần Cookies
3333
3434
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:190)Hỗ trợ quản lý ứng dụng ở mức toàn cục
1.1.4 Tìm hiểu về .Net Phatform và .Net Framework
.Net Framework - Bộ thư viện các lớp đối tượng
.Net Phatform Bao gồm .Net Framework và những công cụ được dùng để xây dựng, phát triển ứng dụng và dịch vụ. ASP.Net.
3535
3636
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Kiến trúc .Net Framework
Hệ Điều Hành - Operating System
Với vai trò quản lý việc xây dựng và thi hành ứng dụng .NET Framework cung cấp các lớp đối tượng (Class) để thi hành các chức năng. Tuy nhiên được "hưởng ứng" hay không tùy thuộc khả năng của HĐH.
Framework chính là một tập hợp hay thư viện các lớp đối tượng hỗ trợ người lập trình khi xây dựng ứng dụng như Microsoft Foundation Class(MFC) là bộ thư viện trong Visual C++, Java Foundation Class(JFC) là bộ thư viện trong Java. .NET Framework là bộ thư viện dành cho các lập trình viên .NET.
Với hơn 5000 lớp đối tượng để gọi thực hiện đủ các loại dịch vụ từ hệ điều hành, chúng ta có thể xây dựng ứng dụng bằng Notepad. Hay với phần mềm Visual Studio.NET với giao diện trực quan Với chức năng đơn giản như Messagebox sẽ được .NET Framework sử dụng hàm API của Windows. Chức năng phức tạp như sử dụng các COMponent sẽ yêu cầu phải cài đặt Microsoft Transaction Server (MTS) hay các chức năng trên Web cần phải cài đặt Internet Information Server (IIS).
3737
3838
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Nếu không có.NET Framework,Visual Studio.NET chỉ là vỏ bọc! Nhưng nếu không có Visual Studio.NET, công việc lập trình .NET cũng lắm bước gian nan! Như vậy chọn HĐH để sử dụng .NET Framework là quan trọng. (Windows XP, 2003 Server, Vista sẽ đơn giản và tiện dụng trong khi lập trình)
Common Language Runtime - CLR Base Class Library – Thư viện các lớp cơ sở
Là thành phần "kết nối" giữa các phần khác trong .NET Framework với hệ điều hành. CLR giữ vai trò quản lý việc thi hành các ứng dụng viết bằng .NET.
Đây là thư viện các lớp cơ bản nhất, được dùng trong khi lập trình hay bản thân những người xây dựng .NET Framework cũng phải dùng nó để xây dựng các lớp cao hơn. Các lớp trong thư viện này là String, Integer, … Ado.Net và Xml
CLR sẽ thông dịch các lời gọi từ chương trình cho Windows thi hành, đảm bảo ứng dụng không chiếm dụng và sử dụng tràn lan tài nguyên của hệ thống, không cho phép các lệnh "nguy hiểm" được thi hành. Các chức năng này được thực thi bởi các thành phần bên trong CLR như: Class loader, Just In Time compiler, COM marshaller, Security engine,…
3939
4040
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu. ADO.NET thay thế ADO. Các lớp đối tượng XML được cung cấp để bạn xử lý các dữ liệu theo định dạng mới: XML. Các ví dụ cho bộ thư viện này là SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,… Trong các bản mới (XP.NET,2003, Vista) CLR được gắn kèm với hệ điều hành. Điều này đảm bảo ứng dụng viết ra sẽ chạy mà không cần cài đặt.
Window form Asp.Net Bộ thư viện các lớp đối tượng dùng trong việc xây dựng các ứng dụng Web. Ứng dụng web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng của .NET Framework. Bộ thư viện về Window form gồm các lớp đối tượng dành cho việc xây dựng các ứng dụng Windows. Việc xây dựng ứng dụng loại này vẫn được hỗ trợ tốt từ trước tới nay bởi các công cụ và ngôn ngữ lập trình của Microsoft. Một "phong cách" lập trình mới code behind. Sự xuất hiện của ASP.NET làm cân xứng giữa quá trình xây dựng ứng dụng trên Windows và Web.
Giờ đây, ứng dụng chỉ chạy trên Windows sẽ có thể làm việc với ứng dụng Web dựa vào Web service. Ví dụ về các lớp trong thư viện này là: Form, User Control,…
4141
4242
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
ASP.NET cung cấp một bộ các Server Control để lập trình viên bắt sự kiện và xử lý dữ liệu của ứng dụng như đang làm việc với ứng dụng Windows. Cho phép chúng chuyển ứng dụng chạy trên Windows thành một ứng dụng Web khá dễ dàng. …
Web services
Web services là các dịch vụ được cung cấp qua Web (hay Internet). Dịch vụ được coi là Web service không nhằm vào người dùng mà nhằm vào người xây dựng phần mềm. Ví dụ, công ty du lịch đang sử dụng một hệ thống phần mềm để ghi nhận thông tin về khách du lịch đăng ký đi các tour. Để thực hiện việc đặt phòng tại địa điểm du lịch, công ty cần biết thông tin về phòng trống tại các khách sạn. Web service có thể dùng để cung cấp các dữ liệu hay một chức năng tính toán. Web service được cung cấp dựa vào ASP.NET và sự hỗ trợ từ phía HĐH của Internet Information Server. Khách sạn có thể cung cấp 1 Web service để cho biết thông tin về các phòng trống tại 1 thời điểm. Dựa vào đó, phần mềm sẽ biết liệu có đủ chỗ để đặt phòng cho khách du lịch không? Nếu đủ, phần mềm lại dùng 1 Web service khác cung cấp chức năng đặt phòng.
4343
4444
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Điểm lợi của Web service là không cần liên lạc với khách sạn để hỏi thông tin phòng rồi sau đó lại xác định loại phòng nào cần đặt, số lượng đặt bao nhiêu, rồi lại liên lạc lại với khách sạn để đặt phòng.
Phân nhóm các lớp đối tượng theo loại Lợi điểm của namespace là phân nhóm các lớp đối Namespace là tên gọi một nhóm các lớp đối tượng tượng, giúp dễ nhận biết và sử dụng. phục vụ cho một mục đích.
Chẳng hạn, các lớp đối tượng xử lý dữ liệu sẽ đặt trong một namespace là Data. Các lớp đối tượng dành cho vẽ đặt trong namespace tên là Drawing. Ngoài ra, namespace tránh việc các lớp đối tượng có tên trùng với nhau không sử dụng được. .NET Framework cho phép chúng ta tạo ra các lớp đối tượng và các namespace của riêng mình. Một namespace có thể là con của một namespace lớn. Namespace lớn nhất là System.
4545
4646
Với hơn 5000 tên có sẵn. Namespace cho phép sử dụng 1 tên đầy đủ để nói đến 1 lớp đối tượng. Ví dụ, dùng lớp WebControls, chúng ta có thể dùng tên tắt là WebControls hay tên đầy đủ là: System.Web.UI.WebControls.
Hệ thống tên miền (Namespace)
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1.2. Tạo ứng dụng web với MS Visual 2005
Đặc điểm của bộ thư viện các đối 1.2.1. Khởi động MS Visual Studio .Net
1.2.2. Tạo ứng dụng Web tượng .NET Framework là sự trải rộng để hỗ trợ tất cả các ngôn ngữ lập trình .NET.
Điều này sẽ giúp những người mới bắt đầu ít bận tâm hơn trong việc lựa chọn ngôn ngữ lập trình cho mình vì tất cả các ngôn ngữ đều mạnh ngang nhau.
4747
4848
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Cũng bằng cách sử dụng các lớp đối tượng để xây lập trình dựng ứng dụng, .NET Framework buộc người phải sử dụng kỹ thuật lập trình hướng đối tượng
1.2.1. Khởi động MS Visual Studio .Net
1.2.2. Tạo ứng dụng Web
(cid:206) Start (cid:206) Programs (cid:206) Microsoft Visual Studio 2005 (cid:206) Microsoft Visual Studio 2005
4949
5050
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Từ menu File (cid:206) New (cid:206) Website (cid:206)Chọn ASP.Net Website (cid:206)Chọn vị trí lưu trữ - Location (D:\Wellcom) (cid:206)Chọn ngôn ngữ lập trình (C#) (cid:206)Chọn Ok
Trang Default.aspx (Source) Kết quả: Cửa sổ Solution Explorer
5151
5252
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Trang Default.aspx (Design) Trang Default.aspx.cs
1.2.3 Bổ sung điều khiển vào trang:
Chuyển sang trang code Defaulr.aspx.cs (Double click vào trang đang thiết kế) Nhập code cho sự kiện Page Load:
•Chọn trang Default.aspx ở chế độ Design •Nhập dòng văn bản: “Chào mừng các bạn đến vời ASP.Net” •Thêm 2 điều khiển Label đặt tên là : lbNgay, lbThoigian.
Lưu ý: Phải lưu tập tin với tùy chọn Save with Encoding…
5353
5454
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1.2.4 Thi hành ứng dụng :
Kiểm lỗi : Menu Build (cid:206) Chọn Build Web Site Chạy chương trình (không debug):Ctrl + F5 Chạy chương trình (có debug): F5
5555
5656
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Chấp nhận bật chế độ debug cho Website
1.3. Các thành phần giao diện trên MS Visual .Net
1.2.5 Phân loại tập tin trong ASP.Net:
1.3.1 Solution Explorer
Diễn giải
.asax
Tập tin quản lý các sự kiện của ứng dụng (application), session, và các sự kiện khi có các yêu cầu tới trang web.
.ascx
Các điều khiển do người dùng tự tạo được lưu trữ với phần mở rộng là ascx (UserControl).
.asmx
Tập tin Web Service của ứng dụng ASP.Net
.aspx
Phần mở rộng của trang ASP.Net
.config
Tập tin cấu hình ứng dụng theo định dạng XML. Web.config chứa hầu hết các cấu hình của ứng dụng
.cs
Tập tin mã nguồn viết theo ngôn ngữ C#
.js
Tập tin mã nguồn của Jscript
5858
5757
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1.3..2 Property Window 1.3.3 Toolbox 1.3.4 Document Outline Window
1.3.1 Solution Explorer
Thêm thành phần mới cho ứng dụng: Click phải Add | Add New Item… Hiển thị cửa số Solution Explorer:
(cid:190)Web Form: Thêm trang Web (cid:190)Class: Thêm lớp đối tượng (cid:190)Module Web Form: Thêm thư viện (cid:190)Web User Control: Thêm điều khiển người dùng (cid:190) …
5959
6060
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Menu View | Solution Explorer Đây là cửa số quản lý các "tài nguyên" có trong ứng dụng. Thông qua cửa sổ này, chúng ta có thể thực hiện các chức năng như: Tạo thư mục, sao chép, cắt, dán như trong Windows Explorer. Và thêm thành phần mới cho ứng dụng:
6161
6262
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Xác định Project khởi động(trong trường hợp Solution có nhiều Project): Click phải chuột (cid:206) chọn Set as StartUp Project. Xác định trang web khởi động cho ứng dụng: Chọn trang cần khởi động (cid:206) Click phải chuột (cid:206) Chọn Set As Start Page.
1.3.2 Property Window
1.3.3 Toolbox
6363
6464
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Hiển thị cửa số Properties Window: Hiển thị Toolbox: Menu View (cid:206)| Properties Window. Dùng để thiết lập thuộc tính cho trang web và Menu View (cid:206) Toolbox Dùng để tạo các điều khiển trân trang. các điều khiển có trong trang web.
1.4. Triển khai ứng dụng web(IIS)
1.3.4 Document Outline Window
Hiển thị cửa sổ Document Outline: 1.4.1 Phần mềm Web Server(IIS)
1.4.2 Triển khai ứng dụng web
6565
6666
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Menu View / Other Windows / Document Outline. Cửa sổ này hiển thị các thành phần của trang web theo tổ chức cây (cid:206) rất dễ quản lý và thao tác với các đối tượng có trong trang Web.
1.4.1 Phần mềm Web Server(IIS)
(cid:153) Giới thiệu về phần mềm Web Server(IIS) (cid:153) Cài đặt IIS Trên Windows 2000/XP
Internet Information Services (IIS) là phần mềm Web Server của Microsot dành cho HĐH Windows Bước 1. Chọn Control Panel | Add/Remove programs. Bước 2. Add/Remove Windows Components. Bước 3. Đánh dấu Internet Information Services (IIS). Bước 4. Chọn nút Next để cài đặt.
IIS có thể được sử dụng như 1 Web server, kết hợp với ASP, ASP.NET để xây dựng các ứng dụng Web tận dụng các điểm mạnh của Server-side Script, COM component,…theo mô hình Client/Server.
6767
6868
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
IIS có rất nhiều phiên bản: (cid:190)Windows 2000 tích hợp IIS 5.0. (cid:190)Windows XP tích hợp IIS 5.5 (cid:190)Windows XP tích hợp IIS 6 hỗ trợ các tính năng dành cho .NET và Web Service. (cid:190)Windows Vista tích hợp IIS 7.0
(cid:153) Trên Windows Vista/ Windows 7
Bước 1: Start (cid:198) Settings (cid:198) Control Panel Bước 2: Classic View (cid:198) Chọn Programs and features Bước 3: Turn Windows features on or off Bước 4: Đánh dấu mục Internet Information Services (IIS) Bước 5: Chọn nút OK để cài đặt.
6969
7070
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Sau khi cài đặt IIS, thư mục InetPub được tạo ra trong C: và chứa thư mục con wwwroot. Để kiểm tra cài đặt: Khởi động trình duyệt truy cập địa chỉ : http://localhost hoặc http://127.0.0.1
(cid:153) Cấu hình Web Server Để kiểm tra cài đặt: Khởi động trình duyệt truy cập địa chỉ : http://localhost hoặc http://127.0.0.1 Trên Windows 2000/XP
7171
7272
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Start (cid:206) Settings (cid:206) Control Panel (cid:206) Administratrive tools (cid:206) Internet Infomtic Services (cid:206) Click phải Default Web site
Trên Windows Vista/ Windows 7
(cid:206) Start (cid:206) Settings (cid:206) Control Panel (cid:206) Administratrive tools (cid:206) IIS Manager
7373
7474
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Qui định thư mục gốc ứng dụng: Home Directory Để thực thi ứng dụng từ địa chỉ http://localhost thì phải lưu ứng dụng tại thư mục này Quy định trang chủ mặc định: Documents Nghĩa là trang mặc định được mở khi truy cập địa chỉ: http://localhost
(cid:206) Next
Khai báo nhãn thư mục ảo (Myweb)
Khai báo thư mục vật lý (D:\MyWebsite)
(cid:153) Tạo thư mục ảo – Virtual Directory: Để truy cập website lưu ở vị trí khác cần phải ánh xạ thư mục ảo. Quy định thư mục gốc ứng dụng: Directory Browsing Quy định trang chủ mặc định: Default Document Trên Windows 2000/XP Click phải Default Website(cid:206)New/ Virtual Directory
7575
7676
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:206)Next (cid:206) Finish
Từ IIS Manager: Click phải trang cần xem (Default.aspx) (cid:206) Browse
Tên ánh xạ
Hoặc Từ trình duyệt nhập: http://Localhost/Maytinh
Thư mục vật lý
Trên Windows Vista/ Windows 7 Truy cập để kiểm tra Click phải: Default Website(cid:206)Add Application
7777
7878
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:206)OK
1.4.2 Triển khai ứng dụng web (Publish web site)
Khai báo đường dẫn thư mục sẽ chứa website publish đến (cid:153) Sử dụng chức năng Publish web site
(cid:153) Biên dịch ứng dụng và copy website đến thư mục cụ thể. (cid:153) Các tập tin code behide đã được biên dịch thành .dll (cid:153) Thao tác (cid:131) Click phải vào project (cid:206) Publish website
8080
7979
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Mở cửa sổ Explorer, ta sẽ thấy thư mục được tạo
(cid:153) Vào IIS tạo thư mục ảo ánh xạ đến thư mục đã tạo
(cid:153) Kiểm tra : http://localhost/
(cid:153) Sử dụng công cụ Web deployment Setup
Chương 2 Các Đối Tượng Trong ASP.Net
Công dụng cũng giống như chức năng Publish web site nhưng không có sẳn trong bộ MS VS 2005 mã phải tự cài đặt
8181
8282
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
2.1. Đối tượng Response Và Request 2.2. Đối tượng Application Và Session 2.3. Đối tượng Server Và Cookies 2.4. Tập tin Global.asax Và Web.config
2.1. Đối tượng Response Và Request
2.1.1 Đối tượng Response
2.1.1. Đối tượng Response
2.1.2. Đối tượng Request Đối tượng Response được sử dụng để giao tiếp với Client, nó quản lý và điều phối thông tin từ Web Server đến các trình duyệt của người dùng.
(cid:153) Phương thức Write
Response.Write ("Chào các bạn!");
String s = DateTime.Today.ToShortDateString();
Response.Write("
" + "Hôm nay là: " + s + ""
8484
8383
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Dùng để ghi kết quả lên trình duyệt của máy khách, có thể là văn bản, thẻ HTML, Mã Script . . .
(cid:153) Phương thức Redirect Ví dụ: Sử dụng đối tượng Response để thực hiện việc download tập tin. Dùng để chuyển yêu cầu truy cập của máy khách đến 1 URL khác
Private Sub lnkDownload_Click( . . . )
String sTap_tin = "De cuongonthiTN2010.pdf"; String sDuong_dan ; sDuong_dan = Server.MapPath("~/") + sTap_tin; Response.AddHeader("Content-Disposition","attachment;
filename=" + sTap_tin);
ReSponse.Redirect(“URL chuyển đến”)
Response.WriteFile(sDuong_dan); Response.End();
Ví dụ:
'Nếu đăng nhập thành công
If (
End Sub
Response.Redirect(“Login.aspx"); Truyền tham số
ReSponse.Redirect(“?biến=” +);
(cid:153) Phương thức WriteFile: Ghi dữ liệu từ File
Nhận tham số
8585
8686
Request.Querystring[0];
Khoa CNTT,Trường CĐ CNTT TP.HCM
Khoa CNTT,Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
2.1.2 Đối tượng Request
Đối tượng Request được dùng để nhận thông tin từ trình duyệt của người dùng gởi về cho WebServer. Thuộc tính QueryString cho phép chúng ta nhận các giá trị truyền qua chuỗi tham số này. (cid:153) Thuộc tính QueryString Request.QueryString[“Tên_tham_số”];
Như đã biết URL(Uniform Resource Locators) của 1 trang có cấu trúc như sau: VD: Giả sử người dùng gởi thông điệp đến Web Server yêu cầu trang: “ChitietSP?Ma=2". Để lấy giá trị tham số này ta thực hiện: QueryString - gọi là chuỗi tham số cấu trúc như sau: String Masp = Request.QueryString["Ma"]; Response.Write(Masp);
8787
8888
http://www.thayphet.net
http://www.thayphet.net
Written by: Dương Thành Phết
Written by: Dương Thành Phết
Các cặp [
2.2. Đối tượng Application Và Session
2.2.1. Đối tượng Application
Application và Session là 2 đối tượng khá quan trọng trong ứng dụng web, giúp các trang aspx có thể liên kết và trao đổi dữ liệu cho nhau Được sử dụng để quản lý tất cả các thông tin của một ứng dụng web. Thông tin được lưu trữ trong đối tượng Application có thể được xử lý trong bất kỳ trang aspx nào trong suốt chu kỳ sống của ứng dụng.
(cid:153) Sử dụng biến Application
Tạo biến Application Application["Tên biến“] =
8989
9090
http://www.thayphet.net
http://www.thayphet.net
Written by: Dương Thành Phết
Written by: Dương Thành Phết
Application.Lock(); Application["So_lan_truy_cap“] = 0; Application.UnLock(); s = Application["So_lan_truy_cap"];
2.2.2. Đối tượng Session
Thuộc tính Timeout
(cid:153) Được dùng để lưu trữ thông tin của người dùng trong ứng dụng.
(cid:153) Qui định khoảng thời gian (tính bằng phút) mà Web Server duy trì đối tượng Session nếu người dùng không gởi yêu cầu về lại Server. Giá trị mặc định là 20 phút. (cid:153) Thông tin được lưu trữ trong Session là của một người dùng trong một phiên làm việc cụ thể.
(cid:153) Nếu không có yêu cầu nào kể từ lần yêu cầu sau cùng
một khoảng thời gian là
9191
9292
http://www.thayphet.net
http://www.thayphet.net
Written by: Dương Thành Phết
© Dương Thành Phết-www.thayphet.net
(cid:153) Đối tượng Session khá hữu hiệu trong việc thực hiện "lưu vết và quản lý thông tin của người dùng". (cid:153) Những yêu cầu sau đó được Web server coi như là một người dùng mới, và đương nhiên sẽ được cấp một đối tượng Session mới.
Sử dụng biến toàn cục với Session Phương thức Abandon Tạo biến Session Session["Tên biến“] =
(cid:153) Nghĩa là Web server phải sử dụng một vùng nhớ để duy trì đối tượng Session trong một khoảng thời gian tương ứng. Ví dụ: Lưu trữ thông tin khi người dùng đăng nhập hệ thống thành công Session["TenDN“] = “phetit"
(cid:153) Phương thức Abandon của đối tượng Session sẽ giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên Web Server ngay khi được gọi thực hiện.
9393
9494
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Những yêu cầu sau đó được Web server coi như là một người dùng mới.
2.3. Đối tượng Server Và Cookies
2.3.1 Đối tượng Server
2.3.1 Đối tượng Server Được sử dụng để cung cấp thông tin của Server cho ứng dụng.
2.3.2 Đối tượng Cookies (cid:153) Thuộc tính MachineName: Dùng để lấy tên của Web Server.
(cid:153) Phương thức Mappath: Dùng để lấy đường dẫn vật lý hoặc đường dẫn ảo đến một thư mục trên Server. thức Transfer(<Đường dẫn
9595
9696
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Phương trang>): Ngừng thi hành trang hiện hành, gởi yêu cầu mới đến trang được gọi thực hiện.
2.3.2 Đối tượng Cookies
Thêm Cookies
Response.Cookies.Add(
Ví dụ:Tạo Cookies TenDN lưu tên đăng nhập của người dùng 3 ngày kể từ ngày hiện hành trên Web Server.
HttpCookie cookTenDN = new HttpCookie("TenDN");
cookTenDN.Value = "phetit"; cookTenDN.Expires = DateTime.Today.AddDays(3); Response.Cookies.Add(cookTenDN);
Lấy giá trị từ Cookies
Request.Cookies[“Tên Cookies”].Value;
HttpCookie cookTenDN =
Request.Cookies["TenDN"];
(cid:153) Nếu đã đăng ký là thành viên của một trang web thì khi yêu cầu đến trang web đó, sẽ nhận ra là thành viên. Vì những thông tin được lưu tại máy Client trong đối tương Cookies.
if (cookTenDN != null)
Response.Write(Request.Cookies["TenDN"].Value);
9797
9898
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Như vậy Cookie như một tập tin (kích thước nhỏ) được lưu tại máy của người dùng. Dùng để nhận ra người đang viếng thăm
2.4. Tập tin Global.asax Và Web.config
2.4.1 Tập tin Global.asax
2.4.1 Tập tin Global.asax
2.4.2 Tập tin Web.config
9999
100100
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Được dùng để: (cid:153) Khai báo và khởi tạo giá trị cho các biến Application, Session. (cid:153) Viết xử lý cho các sự kiện của 2 đối tượng Application và Session. (cid:153) Một project chỉ có 1 tập tin Global.asax Cách tạo:
Cấu trúc tập tin Global.asax Application_Start: Xảy ra một lần đầu tiên khi bất kỳ trang nào trong ứng dụng được gọi. void Application_Start(object sender, EventArgs e) {
101101
102102
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
// Code that runs on application startup Application["So_luot_truy_cap"] = 0; Application["So_nguoi_online"] = 0; }
void Session_Start(object sender, EventArgs e)
{
//Code that runs when a new session is started Application["So_luot_truy_cap"] =
int.Parse(Application["So_luot_truy_cap"].ToString()) + 1;
Application["So_nguoi_online"] =
int.Parse(Application["So_nguoi_online"].ToString()) + 1;
}
103103
104104
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Session_Start: Xảy ra khi người dùng mới yêu cầu đến bất kỳ trang aspx của ứng dụng. Application_End: Xảy ra khi dừng hoạt động của WebServer. Ví dụ xử lý ghi nhận thông tin Số lượt truy cập vào cơ sở dữ liệu (nếu cần).
2.4.2 Tập tin Web.config
void Session_End(object sender, EventArgs e)
{
Web.config là một tập tin văn bản viết theo định dạng XML sử dụng để lưu trữ thông tin cấu hình của một ứng dụng Được tự động tạo ra khi chúng ta tạo mớ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) (Kết thúc phiên làm việc).
// Code that runs when a session ends. Application["So_luot_truy_cap"] =
int.Parse(Application["So_luot_truy_cap"].ToString()) - 1;
Application["So_nguoi_online"] =
int.Parse(Application["So_nguoi_online"].ToString()) - 1;
Bổ sung thông tin cho ứng dụng
}
105105
106106
http://www.thayphet.net
http://www.thayphet.net
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Truy xuất thông tin System.Configuration.ConfigurationSettinger.AppSettings[“Khoá”];
Ví dụ: Tạo biến cấu hình dùng để lưu chuỗi kết nối
CSDL SQLServer "Data Source=PC\SQLEXPRESS;
Initial Catalog=QLBansach;Integrated Security=True“
providerName="System.Data.SqlClient" /> string StrCnn =
ConfigurationManager.ConnectionStrings["KetnoiCSDL"]. ConnectionString.ToString(); 107107 108108 http://www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM Written by: Dương Thành Phết © Dương Thành Phết-www.thayphet.net Lấy thông tin chuỗi kết nối 3.1. Tổng quan về ASP.Net Server Controls
3.2. HTML Server Control
3.3. Web Server Controls
3.4. Các điều khiển khác
3.5. Đối tượng ViewState (cid:190) HTML Control được tạo ra từ các tag HTML tĩnh thường
được sử dụng lập trình ở phía client (cid:190)Để chuyển các HTML Control thành các HTML Server
Control, ta chọn Run As Server Control từ menu ngữ cảnh
hoặc gán thuộc tính runat=“Server” cho HTML Control HTML Control trên Toolbox 109109 110110 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:190)Khi sử dụng HTML Control để lập trình phía Server ta
gán thuộc tính runat="Server" cho HTML Control đó được
gọi là HTML Server Control. (ID) Tên của điều khiển. Tên của điều khiển là duy nhất. AccessKey Ký tự để di chuyển nhanh đến điều khiển - phím nóng. Attributes Tập hợp các thuộc tính của điều khiển HTML BackColor Màu nền của điều khiển. BorderColor Màu đường viền của điều khiển. BorderStyle Kiểu đường viền của điều khiển. Những lý do nên sử dụng Standard Web Control: BorderWidth Độ rộng của đường viền. CssClass Hình thức hiển thị của điều khiển qua tên CSS. Enabled Điều khiển có được hiển thị hay không. Mặc định là True. Font Font hiển thị cho điều khiển ForeColor Màu chữ hiển thị trên điều khiển Height Chiều cao của điều khiển ToolTip Dòng chữ sẽ hiển thị khi rê chuột vào điều khiển. Width Độ rộng của điều khiển. 111111 112112 Bảng liệt kê các thuộc tính chung của các Web control Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:190)Đơn giản, tương tự như Windows Form Controls.
(cid:190)Đồng nhất: Có các thuộc tính giống nhau (cid:206) dễ tìm
hiểu và sử dụng.
(cid:190)Hiệu quả: Tự động phát sinh ra các tag HTML theo
từng loại Browser 3.3.2 TextBox 3.3.1. Label Được dùng để nhập và hiển thị dữ liệu văn bản. Được sử dụng để hiển thị và trình bày nội dung văn Các thuộc tính: bản, chấp nhận hiển thị nội dung với các tag HTML.
Ví dụ: (cid:57)Text: Nội dung chứa trong Textbox
(cid:57)TextMode: lblA.Text = "Đây là chuỗi văn bản thường";
lblB.Text ="Còn đây là chuỗi được in đậm"; SingleLine: Hiển thị và nhập liệu 1 dòng
MultiLine: Hiển thị và nhập liệu nhiều dòng
Password: Hiển thị dấu * thay cho các ký tự. 113113 114114 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:57)Rows: Số dòng hiển thị nếu textbox có nhiều dòng.
(cid:57)Maxlength: Số ký tự tối đa được nhập
(cid:57)Wrap: Văn bản có được phép tự động xuống dòng khi
độ rộng của textbox không đủ. 3.3.3. Image 3.3.4. Button, ImageButton, LinkButton Được dùng để hiển thị hình ảnh lên trang Web. Mặc định là các nút Submit Button, khi được nhấn Các thuộc tính: vào sẽ PostBack về Server. Các thuộc tính: - Text: Chuỗi văn bản hiển thị trên điều khiển. ImageURL: Đường dẫn tập tin hình ảnh.
AlternateText: Chuỗi văn bản sẽ hiển thị chú thích.
ImageAlign: Vị trí hiển thị giữa hình và nội dung.
NotSet,Left, Middle,TextTop,Right - CommandName: Tên lệnh được sử dụng trong sự kiện
Command. 115115 116116 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net - Ngoài những thuộc tính trên, điều khiển ImageButton còn
có các thuộc tính ImageURL, ImageAlign và AlternateText
như điều khiển Image. 3.3.5. HyperLink Ví dụ: Tạo trang web với các điều khiển: Label, Textbox,
Button thực hiện chức năng tính toán như sau: Đượ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: trên điều khiển. ImageURL: Tập tin ảnh hiển thị trên điều khiển.
Text: Nhãn văn bản hiển thị
NavigateUrl: Đường dẫn cần liên kết đến.
Target: Xác định cửa sổ sẽ hiển thị cho mối liên kết { int soluong=int.Parse(txtSoluong.Text );
int dongia=int.Parse(txtDongia.Text );
int Thanhtien=soluong * dongia;
txtThanhtien.Text = Thanhtien.ToString(); } 117117 118118 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net _blank: Hiển thị trang liên kết ở cửa sổ mới.
_self: Hiển thị trang liên kết tại cửa sổ chứa liên kết
_parent: Hiển thị trang liên kết ở frame cha. Ví dụ: Tạo trang web gồm 3 điều khiển Hyperlink 3.3.6. Listbox và DropdownList Là điều khiển hiển thị danh sách lựa chọn, có thể chọn một hoặc nhiều.
Các thuộc tính: 119119 120120 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net + AutoPostBack: Có tự động PostBack về Server khi chỉ
số của mục chọn bị thay đổi. Mặc định False
+ Items: Tập chứa các mục chọn của điều khiển. thêm
vào mục chọn qua thuộc tính ListItem Collection Editor.
+ Rows: Chiều cao của ListBox theo số dòng.
+ SelectionMode: Cách chọn các mục trong ListBox.
Single: Chỉ chọn một mục có trong danh sách.
Multiple: Cho phép chọn nhiều mục. Xử lý mục chọn Tập hợp Items Add: Thêm mục mới vào cuối danh sách Items.Add( 121121 122122 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Items.RemoveAt( protected void Page_Load(. . . ) { if (!IsPostBack) { lstDiadanh.Items.Add("Vịnh Hạ Long");
lstDiadanh.Items.Add("Phan Thiết - Mũi Né");
lstDiadanh.Items.Add("Nha Trang"); lstDiadanh.Items.Add("Đà Lạt"); lstDiadanh.Items.Add("Phú Quốc");
lstDiadanh.Items.Add("Huế - Hội An");
int n = lstDiadanh.Items.Count;
lbSoDD.Text = n.ToString(); } }
protected void btChon_Click(. . .) { lbDiadanh.Text = ""; for (int i = 0; i <= lstDiadanh.Items.Count - 1; i ++) { if (lstDiadanh.Items[i].Selected) lbDiadanh.Text += "Chương 3
Các Điều Khiển WebServer
3.2. HTML Control
3.3. ASP.NET Webserver Control
Ý nghĩa
Thuộc tính
Xử lý sự kiện:
protected void btTinhtien_Click(object sender, EventArgs e)
Xử lý sự kiện:
}
}
124124
123123
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Ví dụ: Tạo trang Web gồm 1 listbox, 2 label , 1 Button khi click nút chọn sẽ hiện tên các địa danh được chọn.
Ví dụ: Tạo trang web gồm Nhóm các RadioButton Giới tính, Thu nhập, Nhóm Checkbox Ngoại ngữ 3.3.7. Checkbox, RadioButton Các thuộc tính
(cid:57)Checked: Trạng thái của mục chọn (chọn hay không) (cid:57)TextAlign: Vị trí của điều khiển so với chuỗi văn bản.
125125
126126
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:57)AutoPostBack: Có được tự động PostBack về Server khi các mục chọn bị thay đổi, mặc định là False. (cid:57)GroupName (RadioButton): Tên nhóm, thuộc tính này được sử dụng để nhóm các điều khiển RadioButton lại thành 1 nhóm.
Các thuộc tính
(cid:57)RepeatColumns: Số cột hiển thị. (cid:57)RepeatDirection: Hình thức hiển thị
Kéo thả RadioButtonList (Hoặc CheckbocList) vào Form
Vertical: Theo chiều dọc Horizontal: Theo chiều ngang 3.3.8. CheckBoxList, RadioButtonList (cid:131) Dùng để tạo ra một nhóm các CheckBox/Radio Button, Là điều khiển danh sách nên có thuộc tính Items chứa tập hợp các mục chọn như ListBox/DropDownList. (cid:131) Các thao tác trên tập hợp Items, xử lý mục chọn cũng tương tự như ListBox/DropDownList. Tạo mới:
(cid:206) Chọn Edit Items
127127
128128
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:57)AutoPostBack: Có được phép tự động PostBack về Server khi các mục chọn của điều khiển bị thay đổi. Mặc định là False.
Ví dụ: Tạo trang web gồm Nhóm RadioButton Thu nhập Ví dụ: Tạo trang web khi click nút Đăng ký thì hiện thị các thông tin được chọn.
Private Sub rblThu_nhap_SelectedIndexChanged(…)…
lblThu_nhap.Text = "Bạn chọn thu nhập: " +
rblThu_nhap.SelectedItem.Text;
End Sub
129129
130130
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Xử lý sự kiện:
Ví dụ:
3.4. Các điều khiển khác
protected void Page_Load(object sender, EventArgs e) {
3.4.1. Điều khiển Literal Khi thiết kế. Tương tự như điều khiển Label, Literal được sử dụng để hiển thị chuỗi văn bản trên trang Web. Lệnh xử lý:
Label1.Text="Đây là chuỗi ký tự trong label"; Literal1.Text = " Đây là chuỗi ký tự trong Literial";
}
Điểm khác biệt là khi thi hành, Literal không tạo thêm tag Html, còn Label sẽ tạo ra tag span (được sử dụng để lập trình ở phía client).
Xem source:
Đây là chuỗi ký tự trong label
131131
132132
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Đây là chuỗi ký tự trong Literial
3.4.2. Điều khiển AdRotator Thuộc tính AdvertisementFile: Tên tập tin dữ liệu (dưới dạng xml) cho điều khiển. Cú pháp của tập tin Advertisement (*.xml)
Được dùng để tạo ra các ảnh quảng cáo (tại 1 vùng sẽ có nhiều ảnh, xuất hiện theo tuần xuất), nó tự động thay đổi các hình ảnh mỗi khi có yêu cầu (PostBack về server).
Lưu ý: Các giá trị có phân biệt chữ Hoa chữ thường
133133
134134
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Ví dụ: Tạo mẫu Quangcao sử dụng điều khiển AdRotator
Bước 1. Thiết kế giao diện Sự kiện AdCreated: Xảy ra khi điều khiển tạo ra các quảng cáo
Bước 2. Tạo tập tin dữ liệu: Quangcao.xml
135135
136136
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Sử dụng chức năng Add New Item… từ thực đơn ngữ cảnh Chọn XML File trong hộp thoại Add New Item
Nhập vào nội dung cho tập tin Quangcao.xml Chuyển màn hình qua trang Data, nhập liệu trực tiếp: Click phải màn hình đang code chọn View Data Grid
137137
138138
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
3.4.3. Điều khiển Calendar Bước 3. Thiết lập thuộc tính cho điều khiển adQuangcao Dùng để hiển thị và cập nhật dữ liệu kiểu ngày
AdvertisementFile: Quangcao.xml Target: _blank KeywordFilter: Không thiết lập (Hiển thị tất cả ảnh)
139139
140140
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Bước 4. Thi hành ứng dụng
DayHeaderStyle: Tiêu đề của các ngày trong tuần
Thuộc tính Sự kiện
DayStyle: Các ngày trong điều khiển.
NextPrevStyle: Tháng trước/sau của tháng đang chọn.
SeleltedDayStyle: Ngày đang được chọn.
TitleStyle: Tiêu đề của tháng được chọn
TodayDayStyle: Ngày hiện hành (trên server).
WeekendDayStyle: Các ngày cuối tuần (thứ 7, chủ nhật)
OtherMonthDayStyle: Các ngày không nằm trong tháng hiện tại.
--------
SelectionChanged: Sự kiện này xảy ra khi chọn một ngày VisibleMonthChanged: Xự kiện xảy ra khi chọn một tháng
141141
142142
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
SelectedDate: Giá trị ngày được chọn trên điều khiển
Ví dụ: Tạo Calendard trên trang web
lbNgay.Text = "Hôm nay ngày " +
DateTime.Today.ToString ("dd/MM/yyyy");
} protected void Calendar1_SelectionChanged1( . . . .) {
lbThongbao.Text ="Bạn đang chọn " +
Calendar1.SelectedDate.ToString("dd/MM/yyyy");
Bước 1: Tạo Calendard vào trang Xử lý sự kiện: protected void Page_Load(object sender, EventArgs e){
}
143143
144144
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Bước 2: Chọn mẫu định dạng: Click phải /Auto Format
3.4.4. Điều khiển File Upload. Các phương thức:
Sử dụng Upload file từ chính ứng dụng Web. File sau khi Upload có thể lưu trữ ở 1 nơi nào đó trên webserver. Focus: Chuyển con trỏ đến điều khiển FileUpload. SaveAs: Cho phép lưu file được upload lên hệ thống.
Ý nghĩa
Thuộc tính
Enable
Vô hiệu hoá điều khiển FileUpload.
FileBytes
Lấy nội dung file đã được upload như một mảng Byte.
FileContent
Lấy nội dung của file đã được upload theo dòng dữ liệu
FileName
Lấy tên file được Upload
HasFile
Trả về giá trị true khi File được Upload
145145
146146
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Ví dụ: Tạo điều khiển File Upload
Thiết kế và tạo FileUpload vào trang
3.4.5. Điều khiển Panel và PlaceHolder (cid:131) Sử dùng để chứa các điều khiển khác. (cid:131) Thuộc tính Visible= True thì các điều khiển chứa bên trong sẽ được hiển thị và ngược lại.
string sTenfile ; //Tách lấy tên tập tin sTenfile = FileUpload1.FileName; //Thực hiện chép tập tin lên thư mục Upload FileUpload1.SaveAs(MapPath("~/Upload/" + sTenfile));
lbThongbao.Text = "Đã upload thành công" ;
}
148148
147147
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Xử lý sự kiện: protected void Button1_Click(object sender, EventArgs e) { Tuy nhiên, điều khiển Panel cho phép chúng ta kéo những điều khiển vào bên trong nó lúc thiết kế, còn điều khiển PlaceHolder thì không.
Ví dụ: Tạo trang sử dụng Panel
Thiết kế:
Thuộc tính (cid:131)DefaultButton: Định nghĩa button mặc định trong panel (sẽ được thực hiện khi nhấn Enter) (cid:131)Direction: Thiết đặt hướng hiển thị nội dung được đưa ra trong panel:NotSet, LeftToRight, RightToLeft.
149149
150150
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:131)GroupingText: Trình bày Panel như 1 Fieldset với một chú giải riêng biệt. (cid:131)HorizontalAlign: Chỉ ra hướng ngang thể hiện nội dung của panel:Center, Justify, Left, NotSet, Right. (cid:131)ScrollBars: Hiển thị scrollbars khi nội dung trong panel vượt quá kích thước: Auto, Both, Horizontal, None, Vertical.
for (int i = 1; i < 100; i++) {
buletnghenghiep.Items.Add("Nghề "+i.ToString());
}
Xử lý sự kiện: protected void Page_Load(object sender, EventArgs e) {
} protected void chkhtsothich_CheckedChanged(. . . .) {
if (chksothich.Checked == true) panelsothich.Visible = true;
else
panelsothich.Visible = false;
} protected void chkhtnghenghiep_CheckedChanged(. . . ) {
if (chknghenghiep.Checked == true) panelnghenghiep.Visible = true;
else
panelnghenghiep.Visible = false;
151151
152152
}
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
3.4.6. Điều khiển hiển thị các trang – View và MultiView Cho phép ẩn hoặc hiện các phần khác nhau của trang Web, tiện ích khi tạo một TabPage để chia 1 trang web có độ dài lớn thành các phần để hiển thị. Điều khiển MultiView chứa đựng 1 hoặc nhiều điều khiển View.
Ví dụ: Tạo trang sử dụng MultiView
Thuộc tính Thiết kế:
(cid:190)Tạo 1 Multiview1 gồm 3 View (View1 View2, View3) (cid:190)Tạo Control Menu1 gồm 3 Tab (Tab1, Tab2, Tab3) Tạo Control Menu vào Form (cid:131) ActiveViewIndex: Lựa chọn điều khiển View được đưa ra hiển thị bằng chỉ số Index (cid:131) Views: Cho phép lấy về tập hợp các điều khiển View chứa đựng trong điều khiển MultiView.
Phương thức
(cid:131) GetActiveView: Cho phép lấy về thông tin của điều khiển View được lựa chọn. (cid:131) SetActiveView: Cho phép thiết lập điều khiển View được hiển thị.
Sự kiện
153153
154154
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:131) ActiveViewChanged:Khi điều khiển View được chọn
Lần lượt khái báo các nhãn (Text) là: Tab 1, Tab 2, Tab 3 và các giá trị (Value) tương ứng là: 0 , 1, 2 Thuộc tính Orientation: Horizaltal (Menu hướng ngang)
155155
156156
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Chọn Edit Menu Item Bổ sung nội dung vào các view tương ứng
3.5. Đối tượng ViewState
157157
158158
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Gán giá trị cho ViewState: ViewState("Tên trạng thái") =
Ví dụ:
Xử lý sự kiện:
159159
160160
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:131) Về bản chất, các giá trị trong đối tượng ViewState được lưu trong một điều khiển hidden và các giá trị này đã được mã hóa. (cid:131) Đối tượng ViewState giúp giảm bớt công sức trong việc lưu trữ và truy xuất các thông tin mà không phải sử dụng nhiều điều khiển hidden protected void btDem_Click(object sender, EventArgs e) { lbThongbao.Text = Convert.ToString(int.Parse(lbThongbao.Text)+1); }
Xem Source
Chương 4 Các Điều Khiển Kiểm Tra Dữ Liệu
161161
162162
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
4.1 Giới thiệu chung 4.2 Các Điều khiển kiểm tra dữ liệu
4.1. Giới thiệu chung
163163
164164
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Mỗi khi PostBack về Server, trang Web luôn kiểm tra tính hợp lệ dữ liệu (nếu có yêu cầu khi thiết kế). Nếu dữ liệu không hợp lệ (bỏ trống, vi phạm miền giá trị, mật khẩu nhập lại không đúng, …), trang web sẽ không thể PostBack về Server.
4.2.1. Điều khiển Required Field Validator
4.2 Điều khiển kiểm tra dữ liệu-Validation Control
Công dụng: 4.2.1. Điều khiển Required Field Validator Dùng để kiểm tra giá trị trong điều khiển phải 4.2.2. Điều khiển Compare Validator 4.2.3. Điều khiển Range Validator được nhập. Để kiểm tra ràng buộc khác rỗng (Not null) Thuộc tính: 4.2.4. Điều khiển Regular Expression Validator InitialValue: Giá trị khởi động. 4.2.5. Điều khiển Custom Validator
165165
166166
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
4.2.6. Điều khiển Validation Summary
4.2.3 Điều khiển Range Validator 4.2.2 Điều khiển Compare Validator
Công dụng: Công dụng: Để so sánh giá trị của điều khiển với giá trị của Để kiểm tra giá trị trong điều khiển có nằm trong điều khiển khác hoặc một giá trị được xác định trước. Sử dụng điều khiển này để kiểm tra ràng buộc đoạn [min-max] (kiểm tra ràng buộc miền giá trị). Thuộc tính:
- MinimumValue: Giá trị nhỏ nhất. - MaximumValue: Giá trị lớn nhất. - Type: Xác định kiểu để kiểm tra dữ liệu. Có thể thực hiện kiểm tra trên các kiểu: String, Integer, Double, Date, Currency
167167
168168
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
miền giá trị, kiểu dữ liệu, liên thuộc tính. Thuộc tính: (cid:131) ControlToCompare: Tên điều khiển cần so sánh. (cid:131) Operator: Qui định phép so sánh (=, >, >=, <, <=, <>), kiểm tra kiểu dữ liệu ( DataTypeCheck) (cid:131) Type: Qui định kiểu dữ liệu để kiểm tra hoặc so sánh(String, Integer, Double, Date, Currency) (cid:131) ValueToCompare: Giá trị cần so sánh
4.2.4. Điều khiển Regular Expression Validator
Công dụng:
Bảng mô tả các ký hiệu sử dụng trong Validation Expression
169169
170170
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Để kiểm tra giá trị của điều khiển phải theo mẫu được qui định trước như: địa chỉ email, số điện thoại, mã vùng, số chứng minh thư, … Thuộc tính: (cid:131) ValidationExpression: Qui định mẫu kiểm tra dữ liệu
4.2.6. Điều khiển Validation Summary 4.2.5. Điều khiển Custom Validator
Công dụng: Công dụng: Điều khiển này cho phép bạn tự viết hàm xử lý
thông báo lỗi - giá trị kiểm tra lỗi. Sự kiện:
171171
172172
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Để hiển thị ra bảng lỗi - tất cả các lỗi hiện có trên trang Web. Nếu điều khiển nào có dữ liệu không hợp lệ, chuỗi thuộc tính ErrorMessage của Validation Control sẽ được hiển thị. Nếu giá trị của thuộc tính ErrorMessage không được xác định, thông báo lỗi đó sẽ không được xuất hiện trong bảng lỗi ServerValidate: Đặt các xử lý kiểm tra dữ liệu trong sự kiện này. Việc kiểm tra này được thực hiện ở Server. Ví dụ: Xử lý kiểm tra dữ liệu nhập tại điều khiển txtSoA có phải là số chẵn hay không.
Thuộc tính: Ví dụ: Tạo trang Dangkykhachang Sử dụng các điều khiển ValidateControl để kiểm tra dữ liệu nhập trên các điều khiển có trong hồ sơ đăng ký khách hàng.
173173
174174
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
- HeaderText: Dòng tiêu đề của thông báo lỗi - ShowMessageBox: Qui định bảng thông báo lỗi có được phép hiển thị như cửa sổ MessageBox hay không. - ShowSummary: Qui định bảng thông báo lỗi có được phép hiển thị hay không.
Thuộc tính Text của các điều khiển kiểm tra dữ liệu đều là: (*)
175175
176176
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Xử lý sự kiện:
177177
178178
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Private Sub butDang_ky_Click(…)… Các thông báo lỗi xuất hiện qua hộp thoại khi dữ liệu nhập không hợp lệ: lblThong_bao.Text = "Đăng ký thành công"; End Sub
Nếu tất cả đều hợp lệ
Chương 5 Các Điều Khiển Liên Kết CSDL
179179
180180
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
5.1 Điều khiển kết nối cơ sở dữ liệu 5.2 Điều khiển liên kết cơ sở dữ liệu
5.1. Điều khiển kết nối CSDL–Data-Source Control
5.1.1 Điều khiển SQLDataSource
(cid:153) Là các điều khiển dùng để chứa nguồn dữ liệu được rút trích từ các hệ QT CSDL như: Access, SQLServer, XML, Ocracle . . . (cid:153) Có các điều khiển Data-Source sau: SQLDataSource, Access Data Source, XML Data Source, . . . (cid:153) Dùng để kết nối CSDL trong các hệ quản trị CSDL SQLServer, Ocracle Server, . . . (cid:153) Chọn đối tượng CSDL như Table, View, Procedure hay câu lệnh SQL và khai báo điều kiện lọc (Where) với nhiều cách như: Giá trị định sẳn, đối tượng Session, Request.Form, Request.QueryString . . .
Tạo kết nối Kéo điều khiển SQLDataSource từ Tollbox vào trang
181181
182182
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Chọn Conigure Data Source (cid:206)
Nếu trước đó đã tạo kết nối thì chọn kết nối đã có. Ngược lại để tạo mới kết nối thì chọn New Connection
Tạo kết nối CSDL mới
183183
184184
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Chọn QTCSDL (Microsoft SQLServer) (cid:153) Chọn Continue để tiếp tục
Chọn Hệ QT CSDL
Chọn Tên Server
Chọn thông tin đăng nhập
Tên kết nối
Chọn tên CSDL
Đồng ý kết nối
Kiểm tra kết nối
185185
186186
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Khai báo các thông số cho kết nối Đặt tên cho kết nối
Xác định nguồn dữ liệu Từ câu lệnh SQL hay Từ Table, View
Xác định điều kiện
Chỉ định sắp xếp
Các lệnh thê, xoá, sửa
187187
188188
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Chọn Test Query để kiểm tra kết quả nguồn dữ liệu. (cid:153) Chọn Finish để hòan thành Xác định nguồn dữ liệu từ Table, View hay câu lệnh SQL có thể chỉ định điều kiện lọc dữ liệu, sắp xếp hay các chỉ định vcho xử lý thêm, xoá, sửa
Điều khiển SQL DataSource và tham số Request.QueryString
Khi click vào liên kết trang có địa chỉ kèm theo tham số dạng: http://localhost:49222/ . . ./SachNXB.aspx?MaNXB=3
189189
190190
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Thực hiện: Tạo trang NhaXB.aspx là danh mục nhà xuất bản Chọn Edit Column từ GiridView Task thông qua đối trực tiếp Để lọc dữ liệu theo điều kiện thì giá trị tham số có thể được gán tượng Request.Querystring (Truyền tham số qua liên kết)
Với các thuộc tính: (cid:153) HeaderText: Nhãn tiêu đề cột (cid:153) Text: Nhãn hiện thị trong tất cả các ô (cid:153) DatTextField: Giá trị từ 1 field chỉ định trong nguồn DL
(cid:153) DataNavigateUrlFields: Danh mục tên các tham số ghi cách nhau bởi dấu ,
(cid:153) DataNavigateUrlFormatting: Địa chỉ trang liên kết kèm tham số dạng: ~/SachNXB.aspx?MaNXB={0}
191191
192192
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Giá trị tham số ghi dưới dạng chỉ số các tham số được khai báo trong DataNavigateUrlFields bắt đầu là 0 và cách nhau dấu ,
Tạo trang hiện thị dữ liệu với nguồn dữ liệu có tham số qua liên kết (Request.QueryString).
193193
194194
Xác định nguồn dữ liệu, sau đó chọn Where để chỉ định điều kiện
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153)Columns: Tên cột làm điều kiện (cid:153)Operator: Toán tử so sánh (cid:153)Source: Loại tham số (QueryString) (cid:153)QueryString field: Tên tham số đã truyền (cid:153)Chọn Add để chấp nhận thêm tham số
195195
196196
Thi hành xem kết quả
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153)Columns: Tên cột làm điều kiện (cid:153)Operator: Toán tử so sánh (cid:153)Source: Loại tham số (QueryString) (cid:153)QueryString field: Tên tham số đã truyền (cid:153)Chọn Add để chấp nhận thêm tham số
Điều khiển SQL DataSource và tham số Request.Form Tạo SqlDataSource với nguồn dữ liệu như sau:
Để lọc dữ liệu trong nguồn dữ liệu theo điều kiện với giá trị tham số là giá trị trên form. Thực hiện: Tạo trang Lietkesach.aspx gồm:
197197
198198
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
1 Textbox thuộc tính ID: MaNXB 1 Button thuộc tính PostbackURL: ~/Lietkesach.aspx (Chính trang thiết kế) Tạo SqlDataSource với nguồn dữ liệu:
Điều khiển SQL DataSource và tham số là các Controls khai báo
199199
200200
trong điều khiển tham số Có thể SqlDataSource mà giá trị được lấy từ điều khiển trình chủ. Ví dụ thiết kế trang SachtheoCD.aspx thực hiện liệt kê danh mục sách có chủ đề được chọn từ điều khiển DropdownList
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153) Columns: Tên cột làm điều kiện (cid:153) Operator: Toán tử so sánh (cid:153) Source: Loại tham số (Form) (cid:153) Form field: Tên tham số đã truyền (Tên Textbox) (cid:153) Chọn Add để chấp nhận thêm tham số
Thực hiện GridView (GridView1) Với nguồn dữ liệu từ Table Sach Thiết kế Dropdownlist (ddlChude) từ Table Chude
Đặt thuộc tính
Và tham số điều kiện (Where)
201201
202202
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
(cid:153)ID: ddlChude (cid:153)DataSourceID: SqlDataSource1 (cid:153)DataTextField: TenCD (Field hiện thị) (cid:153)AutoPostBack: True (cid:153)DataValuefield: MaCD (Field để truyền tham s
Điều khiển SQL DataSource và Procedure
Ta có thể sử dụng điều khiển kết nối CSDL SqlDatasource để truy cập gọi Stored Procedure trong CSDL SQL Server. Ví dụ: Ta có Procedure Sachtheogia liệt kê các quyển sách với điều kiện Giá từ 2 tham số là Giatu và Giaden
Create Proc Sachtheogia @Giatu int, @Giaden Int as
203203
204204
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Select * From sach Where Dongia Between @Giatu and @Giaden (cid:153) Columns: Tên cột làm điều kiện (cid:153) Operator: Toán tử so sánh (cid:153) Source: Loại tham số (Control) (cid:153) ControlID: Tên tham số đã truyền (cid:153) Chọn Add để chấp nhận thêm tham số
Khi cấu hình cho điều khiển SQLDataSource
205205
206206
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Chọn tên Procedure Chọn loại nguồn dữ liệu là từ Procedure
5.1.2 Điều khiển Access DataSource
(cid:153) Dùng để kết nối với cơ sở dữ liệu Access MDB). (cid:153) Thực hiện Tạo AccessDataSource từ thanh Toolbox.
Chọn Configure Data Source . . .: Để thực hiện kết nối
207207
208208
Khoa CNTT Trường CĐ CNTT TP.HCM
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
© Dương Thành Phết-www.thayphet.net
Xác định giá trị cho các tham số của Procedure
5.1.3 Điều khiển XMLDataSource
Diachi="123 Trần Hưng Đạo, Q5" Email="nam@gmail.com" /> Diachi="45 Hai Bà Trưng, Q1" Email="lythi@yahoo.com" /> 209209 210210 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Xác định nguồn dữ liệu và điều kiện tham số như
SQLData Source (cid:153) Điều khiển XMLDataSource được sử dụng để kết nối
CSDL định dạng XML.
(cid:153) Thực hiện: Tạo tập tin XML (DSSinhvien). Tạo XMLDataSource từ Toolbox. 211211 212212 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Chọn Configure Data Source . . .: Để thực hiện kết nối (cid:153)Chọn tập tin XML.
(cid:153) Chọn OK để hoàn tất 213213 214214 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Giới thiệu: 5.2.1 Gridview 5.2.2 DataList 5.2.3 Repeater 5.2.4 Detailview & FormView GridView là một điều khiển khá linh hoạt và hiệu
quả trong việc hiển thị, định dạng và thao tác với dữ liệu.
Bên cạnh đó, chúng ta có thể thực hiện sắp xếp dữ liệu,
thực hiện phân trang với sự hỗ trợ khá tốt của Visual .Net
trong quá trình thiết kế. 215215 216216 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Tạo GridView vào trang (cid:153) Định dạng tự động Kéo Control GridView vào trang Chọn những mẫu định dạng có sẳn Gridview bằng cách Chọn Auto Format từ khung Gridview Task (cid:153) Kết nối nguồn dữ liệu Thi hành xem kết quả: Thực hiện kết nối nguồn dữ liệu với cơ sở dữ liệu SQLServer, Access, XML. . Tại mục Choose Data Source: New Data Source (Hoặc chọn Datasource đã được tạo trước đó) 217217 218218 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Ghi chú: Tạo Datasource như được trình bày trước (cid:153)Thêm cột (cid:153) Hiệu chỉnh các cột Trong cửa sổ Gridview Task chọn : Add New Column Trong cửa sổ Gridview Task chọn : Edit Column 219219 220220 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Chọn Loại field : BoundField
(cid:153) Tiêu đề côt : Header Text
(cid:153) Tên field dữ liệu: DataField
(cid:153) Ok hòan thành BoundColumn properties: Thông tin chi tiết cho các cột AvailableFields: Chọn lọai Field liên kết dữ liệu HeaderText, Footer Text: Tiêu đề trên/dưới của cột BoundField: Cột dạng Textbox. Header Image: Hình hiển thị trên tiêu đề cột. Checkbox Field: Cột dạng Checkbox. Sort Expression: Biểu thức sắp xếp của cột. Hyperlink Field: Cột dạng liên kết. Visible: Qui định cột có được hiển thị hay không. Button Field: Cột dạng nút lệnh DataField: Qui định tên field dữ liệu cần hiển thị. CommandField: Cột dạng nút lệnh được thiết kế sẵn Data formatting expression: Biểu thức định dạng Select: Nút lệnh chọn dòng dữ liệu {0: 221221 222222 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Convert this Field into a Template Column: Chuyển
cột hiện hành thành cột dạng Template Column. (cid:153) Thiết lập các thuộc tính định dạng lưới - HeaderStyle/FooterStyle: Định dạng dòng Header/Footer Chọn GridView (cid:206) Properties 223223 224224 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net - ShowHeader/ShowFooter: Hiện / Ẩn Phần đầu và
chân của GridView Page size:Qui định số dòng/trang trí
thị của bộ nút di Possition: Qui định vị
hiển
chuyển.
Mode: Qui định hình thức
hiển
thị của bộ nút di
chuyển. 225225 226226 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net - AlowPaging : Phân trang - RowStyleAlternatingRowStyle: Định dạng dòng dữ liệu
lẽ/chẵn: (cid:153) Giới thiệu: - AllowSorting: Sắp xếp 227227 228228 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Như điều khiển Gridview, điều khiển DataList được
sử dụng để hiển thị dữ liệu. Tuy nhiên, đối với DataList,
chúng ta phải tự thiết kế hình thức hiển thị dữ liệu (giống
như Template Column của GridView) Một số thuộc tính cần chú ý RepeatDirection: Qui định hướng hiển thị dữ liệu - Thiết kế hình thức hiển thị cho DataList cũng tương
tự như thiết kế cho cột Template Column của GridView 229229 230230 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net - Chọn Edit Template từ thực đơn ngữ cảnh để thực
hiện thiết kế hình thức hiển thị cho DataList. oHorizontal: Hiển thị dữ liệu theo chiều ngang
oVertical: Hiển thị dữ liệu theo chiều đứng RepeatColumns: Qui định số cột hiển thị Ghi chú: Giới thiệu: 231231 232232 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Như DataList & DataGrid, điều khiển Repeater
dùng để hiển thị dữ liệu. Tuy nhiên phải tự thiết kế hình
thức hiển thị thông qua các tag HTML. Để công việc thiết kế được dễ dàng, thực hiện
thiết kế ở bên ngoài điều khiển DataList. Sử dụng
Table để định vị trí các điều khiển. Sau khi thiết kế
hoàn tất, kéo kết quả vào vị trí hiển thị trong DataList. HeaderTemplate> Nội dung hiển thị cho tiêu đề Ví dụ:
Nội dung hiển thị cho các mục dữ liệu dòng lẻ.
Nội dung hiển thị cho các mục dữ liệu chẳn. Bước 1: Tạo mới điều khiển Repeater: rptChudesach
vào trang Web
Nội dung hiển thị giữa các dòng dữ liệu
Nội dung hiển thị cho tiêu đề dưới. Bước 2: Kết nối và tạo nguồn dữ liệu cho điều khiển từ
Table Chude với các cột: MaCD, Tenchude : 233233 234234 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Bước 3:. Chuyển trang Web qua dạng code HTM bổ
sung các tag sau:
Giới thiệu:
235235 236236 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Hai điều khiển này cho phép làm việc với một
trường dữ liệu đơn tại mỗi thời điểm. Thực hiện được
chức năng xem, thay đổi, thêm mới hay xoá, di chuyển
sang trang tiếp theo hay quay lại trang trước. Hiển thị dữ liệu với DetailView Sử dụng Fields với điều khiển DetailView DetailView được đưa ra hiển 237237 238238 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net thị như 1
bảng( Minh họa: Xử lý phân trang với điều khiển DetailView Để tạo phân trang chỉ định thuộc tính
AllowPaging=”true” cho điều khiển DetailView. Với các
thuộc tính định dạng thuộc nhóm: Pagersettings 239239 240240 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Trong ví dụ liên kết dữ liệu với Table Khachhang
đưa vào 5 BoundField và một CheckBoxField, điền dữ
liệu vào với thuộc tính DataField và thiết đặt tiêu dề
(HeaderText). Tạo phân trang và trình bày tại góc trên
bên phải. Hiển thị dữ liệu với FormView 241241 242242 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net FormView dùng để hiển thị dữ liệu với các điều
khiển tùy biến cho dữ liệu một bản ghi. Ví dụ: Trang
XemthongtinNXB.aspx Trình bày dữ liệu sử dụng Edit Template
(cid:190)Tạo FormView vào trang và liên kết dữ liệu
(cid:190)Tại cửa sổ thiết kế chọn Edit Tempalte từ cửa sổ
FormView Task Xử lý phân trang với điều khiển FormView (cid:190)Thiết kế trình bày với các Control điều khiển tương tự
như khi thiết kế DataList với các điều khiển tùy biến Để tạo phân trang chỉ định thuộc 243243 244244 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net tính
AllowPaging=”true” cho điều khiển Form. Với các thuộc
tính định dạng thuộc nhóm: Pagersettings Minh họa: 6.1 Web User controls
6.2 Master Pages
6.3 Themes Và Skin
6.4 Site Navigation Controls 245245 246246 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Trong ví dụ liên kết dữ liệu với Table
NhaXuatBan đưa vào 4 Label, điền dữ liệu vào với
thuộc tính Text cho các File tương tứng, thiết đặt tiêu
đề(HeaderText). Tạo phân trang và trình bày tại phía
dưới giữa trang 6.1.1 Giới thiệu 6.1.2 Tạo và sử dụng User control Tạo mới User control: Khi kết hợp các control để tạo thành một control mới gọi
là Web user control (UC) (cid:153) Tạo mới 1 Web user control (cid:153) Thiết kế giống như thiết kế 1 trang aspx (cid:153) Sử dụng UC cũng giống như sử dụng thủ tục, hàm (cid:206)
khả năng tái sử dụng UC trên các trang web (cid:153) Phần mở rộng của US là: .ascx 247247 248248 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Sử dụng User control: 6.2.1 Giới thiệu (cid:153) Kéo và thả UC vào trang aspx, lúc đó trang aspx sẽ
xuất hiện tag (cid:153) Master pages cho phép tạo 1 bố cục nhất quán trên các
trang web trong cùng 1 website (tương tự template) <%@ Register . . %> (cid:153) Nội dung thể hiển trên trình duyệt là sự kết hợp giữa
trang .master -master page và trang .aspx (hoặc .ascx) -
content page (cid:153) Master page là tập tin có phần mở rộng .master 249249 250250 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Thao tác thiết kế: Giống như trang aspx, nhưng phải
bổ sung ít nhất một điều khiển ContentPlaceHolder Master page Content page 6.2.2 Tạo trang Master (cid:153) Bước 1: Tạo mới Item (cid:198) chọn icon Master Page và đặt
tên trang: *.master 251251 252252 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Trang kết quả 6.2.3 Sử dụng trang Master 253253 254254 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Bước 2: Thiết kế bố cục chung (có thể sử dụng User
control) và bổ sung ContentplaceHolder vào trang
master (cid:153) Bước 1: Tạo mới trang web (.aspx) khai báo sử dụng
trang master 6.3.1 Giới thiệu (cid:153) Bước 2: Thiết kế bổ sung nội dụng trên trang *.aspx
(có thể kéo các User control vào) (cid:153) Themes là tập hợp các khai báo thuộc tính về hình
thức hiển thị(màu sắc, nét chữ, . . .) của điều khiển (cid:153) Dùng áp dụng chung cho tất cả các trong trong một
ứng dụng hoặc tất cả các ứng dụng trên webserver (cid:153) Themes được tạo từ các thành phần: skin, css,
images . . . Tối thiểu phải có skin. Các thành phần này
đặt trong thư mục App_Themes 255255 256256 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Skin là một tập tin có phần mở rộng là .skin, chứa các
tag tạo ra các server control kèm theo các khai báo
thuộc tính. (cid:153) Có 2 loại skin: (cid:153) Tạo file skin: (cid:131) Thêm mới 1 item(cid:206)chọn skin file(cid:206)đặt tên file .skin (cid:131) Default skin: Không khai báo thuộc tính skinID, mặc
định ứng dụng sẽ áp dụng skin này cho tất cả các điều
khiểnco1 cùng kiểu khai báo. 257257 258258 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:131) Named skin: có khai báo thuộc tính skinID, muốn
sử dụng thì phải khai báo tường minh trên điều khiển
cụ thể. (cid:153) Tạo file skin: (cid:131) Thêm mới 1 item Giới thiệu (cid:153) Tạo Theme: (cid:131) Click phải Project(cid:206)Add ASP.NET Folder(cid:206)Theme (cid:131) Dùng để chuyển đến một trang web khác và thể hiện
cấu trúc logic của website (sitemap). Gồm các điều
khiển: Menu, TreeView, SiteMapPath kết hợp với
SiteMapDataSource 259259 260260 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:131) Các điều khiển này thường sử dụng trong trang
Master (cid:153)Auto Format: Chọn mẫu định dạng Dùng thể hiện menu và cho phép người dùng chuyển đến
một trang web khác khi chọn một chức năng Thao tác tạo: Tạo điều khiển Menu vào trang web Chọn mẫu định dạng 261261 262262 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Thiết kế Menu (cid:153) Edit Menu Items: Thiết kế Menu Dùng thể hiện menu ở dạng cây và cho phép người dùng
chuyển đến một trang web khác khi chọn node Thao tác tạo: Tạo điều khiển TreeView vào trang web Chọn mẫu định dạng 263263 264264 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Thiết kế các node 265265 266266 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153)Auto Format: Chọn mẫu định dạng (cid:153) Edit Node: Thiết kế các node Nút gốc Nút con (cid:153)Dùng thể hiện cấu trúc logic của website và cho phép
người dùng chuyển đến một trang web khác Nút cháu (cid:153)Nội dung cấu trúc của Website mặc định được chứa
trong tập tin Web.sitemap (cid:153)Thao tác tạo: Tạo tập tin Web.sitemap 267267 268268 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Tạo điều khiển SitemapPath vào các trang Kết quả (cid:153)Dùng để chứa nguồn dữ liệu lưu trữ trong tập tin
Web.sitemap (cid:153) Thường sử dụng kết hợp với các điều khiển Menu,
TreeView 269269 270270 Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net là (cid:153) Để liên kết với TreeView, Menu chỉ định thuộc tính
DataSourceID của 2 điều khiển này
tên
SiteMapDataSource 7.1.1 Giới thiệu 7.1.2 Kiến trúc ADO .Net 7.1.3 Minh họa tạo kết nối CSDL 271271 272272 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net 7.1 Tổng quan về ADO.Net 7.2 Các đối tượng trong ADO.Net 7.3 Xây dựng lớp xử lý dữ liệu 7.4 Xử lý giỏ hàng cho website thương mại điện tử Hầu hết ứng dụng windows hay website đều cần Vấn đề này được giải quyết dựa vào khả năng có CSDL, để lưu trữ, xử lý, tìm kiếm và báo cáo… của các Hệ QTCSDL. .Net truy xuất DL qua ADO.NET, đặc điểm chính của ADO.NET là: Khi dữ liệu trở thành trung tâm của ứng dụng thì
việc cung cấp các chức năng tới người dùng phụ thuộc
vào khả năng thao tác dữ liệu, vấn đề cần quan tâm là: (cid:57) Khả năng làm việc với DL không kết nối: DL được
lưu trữ trong bộ nhớ như một CSDL thu nhỏ (dataset),
nhằm tăng tốc độ xử lý tính toán và hạn chế sử dụng
tài nguyên. 273273 274274 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:57) Khả năng xử lý dữ iệu chuẩn XML (Có thể trao đổi
giữa bất kỳ hệ thống nào) (cid:57)Lưu dữ liệu tập trung.
(cid:57)Đảm bảo toàn vẹn dữ liệu.
(cid:57)Đảm bảo khả năng truy xuất đồng thời.
(cid:57)Đảm bảo thời gian hồi đáp ngắn.
(cid:57)Bảo mật dữ liệu.
(cid:57)Trao đổi dữ liệu giữa các hệ thống khác nhau Kiến trúc ADO.NET có thể chia làm 2 phần chính: (cid:57)Managed Provider Component: Bao gồm các đối
tượng như DataAdapter, DataReader,… giữ nhiệm vụ
làm việc trực tiếp với dữ liệu như database, file,… 275275 276276 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:57)Content Component: Bao gồm các đối tượng như
DataSet, DataTable,… đại diện cho dữ liệu thực sự
cần làm việc. 7.1.3 Minh họa tạo kết nối CSDL 277277 278278 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Cơ bản các bước thực hiện với database (cid:57) DataReader: Là đối tượng giúp truy cập dữ liệu
nhanh chóng. (cid:57)Bước 1: Tạo kết nối (cid:57)Bước 2: Mở kết nối dữ liệu (cid:57) DataSet: Là một bản sao thu nhỏ của CSDL trong
bộ nhớ với nhiều bảng và các mối quan hệ. (cid:57)Bước 3: Tạo lệnh điều khiển truy vấn SQL (cid:57)Bước 4: Thực thi lệnh (cid:57)Bước 5: Đóng kết nối (cid:57) DataAdapter: Là đối tượng kết nối giữa DataSet và
CSDL, nó bao gồm 2 đối tượng Connection và
Command để cung cấp dữ liệu cho DataSet cũng như
cập nhật dữ liệu từ DataSet xuống CSDL. (cid:57)Bước 6: in kết quả Ví dụ: using System;
using System.Data;
using System.Data.SqlClient;
public partial class vd1 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) {
//Khai báo và khởi tạo biến Connection SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); cnn.Open(); //Mở kết nối
//Command điều khiển truy vấn sql SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText="select TenKH from Khachhang where MaKH=5"; //lấy về chuỗi giá trị trong cơ sở dữ liệu string result = (string)cmd.ExecuteScalar(); cnn.Close(); //đóng kết nối
Response.Write(result); //in giá trị ra màn hình
} } 279279 280280 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net 7.2.1 Connection
7.2.2 Command Connection String: Vai trò của Connection trong ADO.net là tạo kết nối giữa ứng dụng với CSDL
Data Provider Khi thực hiện kết nối cần khai báo các thông tin
cho Connection thông qua thuộc tính Connection String.
Tùy thuộc vào Data Provider: Nếu kết nối với CSDL Access Provider: Khai báo Data Provider của Access
Data Source: Tên tập tin CSDL (.mdb)
User ID: Tên người dùng
Password : Mật khẩu 281281 282282 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:57)System.Data.Oledb : Sử dụng với Access
(cid:57)System.Data.SqlCient : Sử dụng với SQLServer
Ứng với mỗi tên miền:
(cid:57)System.Data.Oledb.OledbConnection
(cid:57)System.Data.SqlClient.SqlConnection
Và các Data Provider khác:
(cid:57)System.data.OcracleClient(Ocracle)
(cid:57)MicroSoft.data.Odbc(Thông qua ODBC của HĐH)
(cid:57)Microsoft.Data.Sqlxml (XML trên Sqlserver) protected void Page_Load(object sender, EventArgs e)
{ String StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection (StrCnn);
cnn.Open();
//Truy xuất, xử lý dữ liệu
cnn.Close(); } } 284284 283283 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Nếu kết nối với CSDL SQLServer Provider: Khai báo Data Provider của SQLServer Data Source/Server: Tên Server Initial Catalog/DataBase: Tên CSDL Ví dụ: Tạo kết nối với CSDL Access
using System;
using System.Data;
using System.Data.OleDb;
public partial class VD2 : System.Web.UI.Page
{ User ID/UID: Tên người dùng Password/ PWD: Mật khẩu Integrated Security: Cơ chế chứng thực đăng nhập true: tài khoản Windows; false: Tài khoản SqlServer (ví dụ: sa) protected void Page_Load(object sender, EventArgs e)
{ String StrCnn="Data Source=.; Initial Catalog=QLbansach; User ID=sa;Password=“; SqlConnection cnn = new SqlConnection(StrCnn);
cnn.Open();
//Truy xuất, xử lý dữ liệu
cnn.Close(); } } 286286 285285 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Các thuộc tính Của Connection DataBase: Tên CSDL DataSource: Tên Server Provider:Tương ứng với Provider của HQTCSDL Ví dụ: Tạo kết nối với CSDL SQLServer
using System;
using System.Data;
using System.Data.sqlClient;
public partial class KetnoiCSDL : System.Web.UI.Page
{ State: Tình trạng kết nối của Connection: Broken: Kết nối đã bị ngắt khi đã kết nối Closed: Kết nối đã đóng Connecting: Đang kết nối Executing: Kết nối đang thực hiện một lệnh Fetching: Kết nối đang truy xuất dữ liệu Open: Kết nối đang mở 287287 288288 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Các phương thức Sau khi tạo kết nối CSDL, mọi thao tác với nguồn dữ liệu có thể được thực hiện thông qua Command. Change Databse: Thay đổi DataBase làm việc Tùy theo loại Connection đối tượng Command Close : Đóng kết nối thuộc tên miền: Dispose: Giải phóng bộ nhớ System.Data.OleDb.OleDbCommand Open: Thực hiện kết nối System.Data.SqlClient.SqlCommand As New SqlCommand cmd As SqlCommand = New SqlCommand(); cmd.Connection = cnn; cmd.CommandType = CommandType.Text; cmd.CommandText = "Select * From Khachhang" 289289 290290 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Tạo Command Các thuộc tính Của Command Cú pháp: CommandText: Lệnh SQL hay tên Procedure CommandType: Loại Command Text: (Mặc định): Là câu lệnh SQL StoredProcedure: Tên thủ tục Hoặc TableDirect: Tên Connectionủa table VD: OleDbParameter As New OleDbParameter(); OleDbParameter As New OleDbparameter( OleDbParameter Access Parameters
(cid:153) Lệnh SQL trong commandText có thể sử dụng As New OleDbParameter ( SqlParameter As New SqlParameter(); SqlParameter As New SqlParameter( SqlParameter As New SqlParamter( 292292 291291 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:131) ? (khi sử dụng Access)
(cid:131) @Tênbiến (khi sử dụng SQLServer)
thay cho trị chưa xác định và khi thực hiện sẽ
dùng đối tượng Parameters để truyền giá trị
vào dấu ?/ @Tênbiến. (cid:153) Tùy theo Command Parameter sẽ khai báo khác nhau SQLServer Where MaKH=?”; OleDbParameter Par As OleDbParameter= cmd.CreateParameter(); Các thuộc tính cần chú ý: VD: Khi sử dụng OleDbCommand
cmd.CommandText=”Select * From KhachHang Direction: Giá trị cho biết lọai tham số Input: (mặc định) Loại tham số đầu vào InputOutput: Loại tham số đầu vào và ra Output: Loại tham số đầu ra ReturnValue: Loại tham số nhận trị trả về Where MaKH=@MaKH”; SqlParameter Par As SqlParameter = cmd.CreateParameter(); Par.ParameterName=”@MaKH”;
Par.Value=”KH01”;
cmd.Parameters.Add(Par); 293293 294294 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net OleDbType / SqlDbType: Kiểu dữ liệu của tham số. ParameterName: Tên tham số Value: Giá trị tham số cmd.CommandText=”Select * From BangDiem cmd.CommandText=”Select * From BangDiem Where Masv=@MaSV and MaMH = @MaMH ”; Where Masv=? And MaMH=?”; SqlDbParameter Par1 As SqlDbParameter= cmd.CreateParameters.Add(“@MaSV”,SqlType.Char,4); Par1.Value=”SV01” SqlDbParameter Par2 As SqlDbParameter= cmd.CreateParameters.Add(“@MaMH”,SqlType.Char,4); OleDbParameter Par1 As OleDbParameter=
cmd.CreateParameters.Add(“Sinhvien”,OleDbType.Char,4);
Par1.Value=”SV01”
OleDbParameter Par2 As OleDbParameter=
cmd.CreateParameters.Add(“Monhoc”,OleDbType.Char,4);
Par2.Value=”MH01” Par2.Value=”MH01”; 295295 296296 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net VD: Khi sử dụng SqlDbCommand Đưa tham số vào tập hợp Parameters
VD: Khi sử dụng OleDbCommand Tạo tham số và đưa vào tập hợp Parameters cmd.CommandText=”spKetQuaThi”;
cmd.CommandType=CommandType.StoredProcedure;
OleDbParameter ts3 As New OleDbParameter();
ts3.Direction=ParameterDirection.ReturnValue;
ts3.OleDbType=OleDn.OleDbType.Int;
cmd.parameters.Add(ts3);
OleDbParameter ts1 as OleDbParameter=
cmd.Parameters.Add(“@MaSV”,OleDbType.Char,4);
Ts1.Value=”Sv01”;
OleDbParameter ts2 as OleDbParameter=
cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4); Ts1.Value=”MH01”; 297297 298298 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net VD: Procedure SpKetQuaThi cần 2 tham số đầu vào:
@MaSV , @MaMH và trả về Điểm thi của Môn học của
sinh viên đó. try Ví dụ 1: Sử dụng Command với câu lệnh Select { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); Thực hiện Command: SqlDataReader (cid:153) Phương thức ExecuteReader: Trả về đối tượng
DataReader để đọc dữ liệu mỗi lần một dòng với
phương thức Read.(DataReader đọc dữ liệu trực tiếp từ
nguồn nên phải duy trì kết nối đến khi đọc xong) SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Loại command là câu lệnh SQL
cmd.CommandText = "Select Count(*) From Chude";
cmd.CommandType = CommandType.Text;
//Mở kết nối và lấy dữ liệu
cnn.Open();
int count = (int)cmd.ExecuteScalar();
response.write(count.ToString());
cnn.Close(); }
catch (Exception)
{ response.write("Không thành công!“); VD: SqlDataReader rd As SqlDataReader; rd = cmd.ExecuteReader; } 299299 300300 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153) Phương thức ExcuteNoneQuery: Dùng thực thi các
phát biểu T-Sql như: Insert, Update, Delete, Create,…
(cid:153) Phương thức ExcuteScalar: Trả về từ phát biểu
SQL dạng Select chỉ có một cột một hàng. try try { SqlConnection cnn = new SqlConnection("Data Source=(local); { Initial Catalog=QLbansach;User ID=sa;Password="); SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
SqlParameter parTenLinhVuc = new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50); cmd.CommandText = "INSERT INTO CHUDE VALUES(@TENCHUDE)"; SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Biến Commnad thao tác Insert, Update, Delete
cmd.CommandText = "Insert Into Chude(tencd) Values(n'văn hóa')";
cmd.CommandType = CommandType.Text;
cnn.Open();
cmd.ExecuteNonQuery();
response.write("Thành công!“);
cnn.Close(); cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(parTenchude);
parTenLinhVuc.Value = TextBox1.Text;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
response.write("Thành công!“); }
catch (Exception)
{ response.write(“Thất bại!“); } }
catch (Exception)
{ response.write(“Thất bại!“); } 301301 302302 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete Các thuộc tính (cid:153)Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con
trỏ phía Server và duy trì kết nối với Server trong suốt
quá trình đọc dữ liệu, 303303 304304 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:153)Tùy theo loại Connection mà DataReader thuộc tên
miền: System.Data.OleDb.OleDbDataReader (cid:153) FieldCout: Số cột trên dòng hiện hành của
DataReader
(cid:153) IsClosed : Cho biết dataReader đã đóng
(cid:153) Item:Trị của cột truyền vào. Tham số truyền vào là
tên cột hoặc số thứ tự tính từ 0. System.Data.SqlClient.SqlDataReader try { SqlConnection cnn = new SqlConnection("Data Source=(local); Ví dụ 1:DataReader với lệnh Insert,Update,Delete +Tham số Initial Catalog=QLbansach;User ID=sa;Password="); Các phương thức (cid:153) Close: Đóng DataReader SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "SELECT * FROM Nhaxuatban";
cmd.CommandType = CommandType.Text;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{ list = list + dr["TenNXB"].ToString().Trim() + " "; (cid:153) GetFieldType: Trả về kiểu dữ liệu của tham số
truyền vào. (cid:153) GetName: Trả về tên của cột truyền vào (cid:153) GetValue: Trả về trị của cột truyền vào }
dr.Close();
response.write(list.ToString());
cnn.Close(); } catch (Exception) { (cid:153) Read: Di chuyển đến dòng kế tiếp và trả về true
nếu còn dòng để di chuyển, ngược lại trả về False. response.write(“Thất bại!“); } 306306 305305 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Trong khi dataReader đang mở các thao tác dữ
liệu trên nguồn dữ liệu đều không thể cho đến khi
dataReader đóng lại bằng lệnh Close try
{ SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); Create Procedure GetchudeByMaCD
@Machude char(15)
AS
Begin Select * From Chude Where MaCD=@Machude End SqlCommand cmd = new SqlCommand("Getnhaxuatban", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{ list = list + dr["TenNXB"].ToString(); }
dr.Close();
response.write(list.ToString());
cnn.Close(); }
catch (Exception) { response.write(“Thất bại!“); } 307307 308308 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net try
{ SqlConnection cnn = new SqlConnection("Data Source=(local); Ví dụ 2: DataReader + gọi procedure (VD: Getnhaxuatban) Ví dụ 2: DataReader + gọi procedure có tham số Initial Ctalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("GetchudeByMaCD", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMALINHVUC = new SqlParameter("@Machude", SqlDbType.NChar, 10); parMAVHUDE.Value = TextBox1.Text;
cmd.Parameters.Add(parMACHUDE);
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{ (cid:153) Để lấy dữ liệu từ nguồn dữ liệu về cho ứng dụng,
chúng ta sử dụng đối tượng DataAdapter. Đối tượng
này cho phép ta lấy cấu trúc và dữ liệu của các bảng. (cid:153) DataAdapter là một bộ gồm 4 đối tượng: (cid:131) SelectCommand: Cho phép lấy thông tin từ nguồn. list = list + dr["Tenchude"].ToString(); (cid:131) InsertCommand: Cho phép thêm dữ liệu vào bảng
trong nguồn. }
dr.Close();
response.write(list.ToString());
cnn.Close(); (cid:131) UpdateCommand: Cho phép điều chỉnh dữ liệu của
bảng trong nguồn. }
catch (Exception) { response.write(“Thất bại!“); 309309 310310 } Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:131) DeleteCommand: Cho phép xóa dữ liệu của bảng
trong nguồn. (cid:153) Các thuộc tính của DataAdapter (cid:153) Tạo DataAdapter
Cú pháp:
(cid:131) InsertCommand: Đối tượng Command chứa nội
dung lệnh thêm các mẫu tin trên nguồn dữ liệu. (cid:131) SelectCommand: Đối tượng Command chứa nội
dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu. DataAdapter chỉ thao tác với nguồn dữ liệu qua đối
tượng connection đang kết nối, khi Connection chưa mở
thì DataAdapter sẽ tự động mở kết nối khi cần và đóng
lại 311311 312312 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net (cid:131) UpdateCommand: Đối tượng Command chứa nội
dung lệnh sửa các mẫu tin trên nguồn dữ liệu. (cid:153) Các chức năng của DataAdapter (cid:131) Phương thức trả về mẫu tin lấy được (cid:131) Lấy dữ liệu từ nguồn: - DataTable: Fill( Dữ liệu lấy về DataSet dưới dạng các dataTable
với tên là: Table0,Table1, Table2. . . - Đổ dữ liệu vào Datset cho bảng DataTable nếu
chưa có sẽ tạo mới: Fill( 313313 314314 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Update( (cid:153) Các phương thức Thêm một bảng vào Dataset Tables.Add() Một bảng mới tự động được tạo ra với tên
mặc định Table1, Table2 . . . (cid:153) Dataset là một mô hình CSDL quan hệ thu nhỏ
đáp ứng nhu cầu của ứng dụng.
(cid:153) Dataset chứa các bảng (DataTable), các quanhệ
(DataRelation) và các ràng buộc (constraint)
(cid:153) Dataset thuộc tên miền: System.Data.Dataset.
(cid:153) Khai báo New System.Data.Dataset() Tables.Addd( 315315 316316 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Một bảng mới tạo ra theo đúng Kiểm tra bảng có thuộc về Dataset Để hủy các thay đổi trên Dataset
RejectChanges() Tables.Contains( 318318 317317 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Dispone()
Giải phóng mọi tài nguyên trên vùng nhớ Lấy ra một bảng trong Dataset
Tables( Ví dụ 1: DataAdapter + update dữ liệu try
{ SqlConnection cnn = new SqlConnection("Data Source=(local); Dữ liệu các bảng trong nguồn dữ liệu được lấy về
và đưa vào các DataTable. DataTable thuộc tên miền :
System.Data.dataTable.
Cú pháp: Initial Catalog=QLbansach;User ID=sa;Password=");
SqlDataAdapter da=new SqlDataAdapter("select * from CHUDE", cnn);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
if (row["MaCD"]=="1")
{ row["TENCHUDE"] = "BBB"; }
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
//Không sử dụng SqlCommandBuilder thì không thể update dữ liệu.
da.Update(ds); }
catch (Exception) { response.write(“Thất bại!“); } 320320 319319 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net New DataTable();
New DataTable( try
{ SqlConnection cnn = new SqlConnection("Data Source=(local); try
{ Initial Catalog=QLbansach;User ID=sa;Password="); SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("Getchude", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMACD = new SqlParameter("@MACD", SqlDbType.NChar, 10); SqlDataAdapter da = new SqlDataAdapter("GETNXB", cnn);
DataSet ds = new DataSet();
da.Fill(ds);
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView2.DataSource = ds.Tables[0];
GridView2.DataBind();} catch (Exception) { response.write(“Thất bại!“); } parMACD.Value = "1";
cmd.Parameters.Add(parMACD);
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cnn.Close(); }
catch (Exception) { response.write(“Thất bại!“); 321321 322322 } Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Ví dụ 2: DataAdapter + Procedure(GetNXB) Ví dụ 3: DataAdapter + Procedure tham số (Getchude) Ví dụ 4: DataAdapter + Đối số là command try
{ SqlConnection cnn = new SqlConnection("Data Source=(local); Dữ liệu các bảng trong nguồn dữ liệu được lấy về
và đưa vào các DataTable. DataTable thuộc tên miền :
System.Data.dataTable.
Cú pháp: Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("GETNXB", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
//da.InsertCommand = cmd;
//da.DeleteCommand = cmd;
//da.UpdateCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cnn.Close(); }
catch (Exception) { response.write(“Thất bại!“); 323323 324324 } Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net New DataTable();
New DataTable( (cid:131) Tạo mới lớp XLDL.cs: Thêm mới 1 Item Tên lớp: XLDL.cs (cid:153) Để các thao tác với CSDL thuận lợi. Ta nên xây dựng lớp
xử lý dữ liệu đảm nhận việc kết nối CSDL và các thủ tục xử lý.
(cid:131) Docbang(string LenhSQL): Nhằm thực hiện câu lệnh
truy vấn SQL để trả về dữ liệu là 1 DataTable
(cid:131) Thuchienlenh(string LenhSQL): Nhằm thực hiện câu
lệnh Insert, Update, Delete để cập nhật dữ liệu cho CSDL. (cid:153) Thực hiện: (cid:131) Tạo cấu hình chuỗi kết nối CSDL trong tập tin
Webconfig. (Có thể dùng SQLDatasource để sinh mã) 325325 326326 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net . . .
public static void thuchienlenh(string LenhSQL) { using (SqlConnection cnn = new SqlConnection(StrCnn))
{ Thực hiện mã code cho lớp XLDL.cs
. . .
using System.Data.SqlClient;
public class XLDL
{
static string StrCnn = ConfigurationManager.ConnectionStrings["KetnoiCSDL"].
ConnectionString.ToString(); cnn.Open();
SqlCommand bolenh = new SqlCommand(LenhSQL, cnn);
bolenh.ExecuteNonQuery();
cnn.Close(); public static DataTable Docbang(string LenhSQL)
{ } } using (SqlConnection cnn = new SqlConnection(StrCnn))
{ } SqlDataAdapter bodocghi = new SqlDataAdapter(LenhSQL, cnn);
DataTable bang = new DataTable();
bodocghi.Fill(bang);
return bang; } }
. . . 327327 328328 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net Sẽ lưu lớp này trong thư mục App_Code5.2. Điều khiển liên kết cơ sở dữ liệu
5.2.1 Gridview
5.2.2 Điều khiển DataList
5.2.3 Điều khiển Repeater
5.2.4 Detailview & FormView
Mã CĐ
Tên CĐ
<%# Eval("MaCd")%>
<%# Eval("Tenchude")%>
<%# Eval("MaCD")%>
<%# Eval("TenChude")%>
Detailview
)trong HTML để hiển thị dữ liệu 1 bản ghi.
Ví dụ: Trang XemthongtinKH.aspx DetailView hỗ trợ tất cả các Field như GridView :
BoundField,CheckBoxField,CommandField,ButtonField,
HyperLinkField, ImageField, TemplateField
Formview
Chương 06
Thiết Kế Layout
6.1. Web User controls
Chọn: Web User Control
Đặt tên: *.ascx
6.2. Master Pages
6.3. Themes Và Skin
6.4. Site Navigation Controls
6.4.1 Điều khiển Menu
6.4.2 Điều khiển TreeView
6.4.3 Điều khiển SiteMapPath
6.4.4 Điều khiển SiteMapDataSource
7.1. Tổng Quan Về ADO.Net
Chương 7
Lập Trình Web Form Với ADO.Net
7.1.1 Giới Thiệu
7.1.2 Kiến Trúc ADO.Net
7.2. Các đối tượng trong ADO.Net
7.2.1 Connection
7.2.2 Command
Par.Value=”KH01”;
cmd.Parameters.Add(Par);
VD: Khi sử dụng SqlDbCommand
cmd.CommandText=”Select * From KhachHang
7.2.3 DataReader
7.2.4 DataAdapter
7.2.5 Dataset
7.2.6 DataTable
7.2.7 Đối Tượng Transaction
7.3. Xây Dựng Lớp Xử Lý Dữ Liệu
Có thể bạn quan tâm
Tài liêu mới