Bài giảng Lập trình web asp.net với C#

Tài liệu Bài giảng Lập trình web asp.net với C#: Giảng Viên: Th.S Phạm Đào Minh Vũ Email: phamdaominhvu@yahoo.com 1 LẬP TRÌNH WEB ASP.NET VỚI C# PHẦN 2 2 Chương 1 Tổng Quan Về ASP.Net Khoa CNTT,Trường CĐ CNTT TP.HCM 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 3 1.1.1 Tìm hiểu về ASP.Net 1.1. Giới thiệu về ASP.Net và .Net Framework 1.1.2 Những ưu điểm của ASP.Net 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 Khoa CNTT,Trường CĐ CNTT TP.HCM 4 1.1.1 Tìm hiểu về ASP.Net 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. 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 AS...

pdf441 trang | Chia sẻ: honghanh66 | Lượt xem: 1280 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Lập trình web asp.net với C#, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giảng Viên: Th.S Phạm Đào Minh Vũ Email: phamdaominhvu@yahoo.com 1 LẬP TRÌNH WEB ASP.NET VỚI C# PHẦN 2 2 Chương 1 Tổng Quan Về ASP.Net Khoa CNTT,Trường CĐ CNTT TP.HCM 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 3 1.1.1 Tìm hiểu về ASP.Net 1.1. Giới thiệu về ASP.Net và .Net Framework 1.1.2 Những ưu điểm của ASP.Net 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 Khoa CNTT,Trường CĐ CNTT TP.HCM 4 1.1.1 Tìm hiểu về ASP.Net 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. 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  Được yêu thích trong thời gian dài Khoa CNTT,Trường CĐ CNTT TP.HCM 5  Tuy nhiên, ASP còn tồn đọng một số khó khăn như:  Code ASP và HTML lẫn lộn, viết code khó khăn,  Hạn chế khả năng sử dụng lại code.  Mã nguồn không được biên dịch trước và không hỗ trợ cache  hạn chế về tốc độ, quá trình Postback khó khăn,  Năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web mới là ASP.Net đã khắc phục được các nhược điểm của ASP củ.  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. Khoa CNTT,Trường CĐ CNTT TP.HCM 6  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.  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. 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. Khoa CNTT,Trường CĐ CNTT TP.HCM 7 1.1.2 Những ưu điểm của ASP.Net ASP.Net cho phép lựa chọn bất kỳ ngôn ngữ lập trình nào mà bạn yêu thích: Visual Basic.Net, J#, C#, Trang ASP.Net được biên dịch trước, chuyển 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. Khoa CNTT,Trường CĐ CNTT TP.HCM 8 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, ASP.Net và ASP có thể cùng hoạt động trong 1 ứng dụng. ASP.Net sử dụng phong cách lập trình mới gọi là Code behide (Tách code riêng, giao diện riêng) Dễ đọc, dễ quản lý và bảo trì. Kiến trúc lập trình giống lập trình ứng dụng trên Windows. Khoa CNTT,Trường CĐ CNTT TP.HCM 9 Hỗ trợ quản lý trạng thái của các control Hỗ trợ nhiều cơ chê Cache Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser Triển khai cài đặt • 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 Hỗ trợ quản lý ứng dụng ở mức toàn cục • Global.aspx có nhiều sự kiện hơn • Quản lý session trên nhiều Server, không cần Cookies Khoa CNTT,Trường CĐ CNTT TP.HCM 10 1.1.3 Quá trình xử lý tập tin .aspx 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 Khoa CNTT,Trường CĐ CNTT TP.HCM 11 1.1.4 Tìm hiểu về .Net Phatform và .Net Framework .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. Khoa CNTT,Trường CĐ CNTT TP.HCM 12 .Net Framework - Bộ thư viện các lớp đối tượng Kiến trúc .Net Framework Khoa CNTT,Trường CĐ CNTT TP.HCM 13 Framework chính là một tập hợp hay là một 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 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! Khoa CNTT,Trường CĐ CNTT TP.HCM 14 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. 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). Như vậy chọn HĐH để sử dụng .NET Framework là quan trọng. (Windows XP, 2003 Server, Window 7, sẽ đơn giản và tiện dụng trong khi lập trình) Khoa CNTT,Trường CĐ CNTT TP.HCM 15 Common Language Runtime - CLR 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. 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, Trong các bản mới (XP.NET, 2003, Win 7,) CLR được gắn kèm với hệ điều hành. Điều này đảm bảo ứng dụng ta viết ra sẽ chạy trên máy tính khác mà không cần cài đặt. Khoa CNTT,Trường CĐ CNTT TP.HCM 16 Base Class Library – Thư viện các lớp cơ sở Đâ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 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, Khoa CNTT,Trường CĐ CNTT TP.HCM 17 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. 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.  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 trước đây chỉ chạy trên nền Windows thành một ứng dụng Web khá dễ dàng. Khoa CNTT,Trường CĐ CNTT TP.HCM 18 Window form 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. 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, © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 19 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. 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. Khoa CNTT,Trường CĐ CNTT TP.HCM 20 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. 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. Đ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. Khoa CNTT,Trường CĐ CNTT TP.HCM 21 Phân nhóm các lớp đối tượng theo loại Namespace là tên gọi một nhóm các lớp đối tượng phục vụ cho một mục đích nào đó, 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, . Một namespace có thể là con của một namespace lớn. Namespace lớn nhất là System. Lợi điểm của namespace là phân nhóm các lớp đối tượng, giúp dễ nhận biết và sử dụng. Với hơn 5000 tên có sẵn thì khả năng bị trùng tên là rất lớn  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. Khoa CNTT,Trường CĐ CNTT TP.HCM 22 Hệ thống tên miền (Namespace) Khoa CNTT,Trường CĐ CNTT TP.HCM 23 Đặc điểm của bộ thư viện các đối 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. Cũng bằng cách sử dụng các lớp đối tượng để xây dựng ứng dụng, .NET Framework buộc người lập trình phải sử dụng kỹ thuật lập trình hướng đối tượng Khoa CNTT,Trường CĐ CNTT TP.HCM 24 1.2. Tạo ứng dụng web với MS Visual 2005 1.2.1. Khởi động MS Visual Studio .Net 1.2.2. Tạo ứng dụng Web Khoa CNTT,Trường CĐ CNTT TP.HCM 25  Start  Programs  Microsoft Visual Studio 2010 1.2.1. Khởi động MS Visual Studio .Net Khoa CNTT,Trường CĐ CNTT TP.HCM 26 Từ menu File  New  Website Chọn ASP.Net Empty Web site Chọn vị trí lưu trữ - Location (D:\Wellcom) Chọn ngôn ngữ lập trình (C#) 1.2.2. Tạo ứng dụng Web Khoa CNTT,Trường CĐ CNTT TP.HCM 27 Kết quả: Cửa sổ Solution Explorer Chuột phải -> Add new Item -> Webform -> đặt tên “Default.aspx” Khoa CNTT,Trường CĐ CNTT TP.HCM 28 Trang Default.aspx (Source) Trang Default.aspx.cs Khoa CNTT,Trường CĐ CNTT TP.HCM 29 •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. 1.2.3 Bổ sung điều khiển vào trang: Khoa CNTT,Trường CĐ CNTT TP.HCM 30 Chuyển sang trang code Default.aspx.cs (Double click vào trang đang thiết kế) Nhập code cho sự kiện Page Load: Khoa CNTT,Trường CĐ CNTT TP.HCM 31 1.2.4 Thi hành ứng dụng : Kiểm lỗi : Menu Build  Chọn Build Web Site Chấp nhận bật chế độ debug cho Website Khoa CNTT,Trường CĐ CNTT TP.HCM 32 Chạy chương trình (không debug):Ctrl + F5 Chạy chương trình (có debug): F5 Khoa CNTT,Trường CĐ CNTT TP.HCM 33 1.2.5 Phân loại tập tin trong ASP.Net: 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 Khoa CNTT,Trường CĐ CNTT TP.HCM 34 1.3. Các thành phần giao diện trên MS Visual .Net 1.3.1 Solution Explorer 1.3..2 Property Window 1.3.3 Toolbox 1.3.4 Document Outline Window Khoa CNTT,Trường CĐ CNTT TP.HCM 35 1.3.1 Solution Explorer Hiển thị cửa số Solution Explorer: 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: Khoa CNTT,Trường CĐ CNTT TP.HCM 36 Thêm thành phần mới cho ứng dụng: Click phải Add | Add New Item Web Form: Thêm trang Web Class: Thêm lớp đối tượng Module Web Form: Thêm thư viện Web User Control: Thêm điều khiển người dùng  Khoa CNTT,Trường CĐ CNTT TP.HCM 37 Xác định Project khởi động(trong trường hợp Solution có nhiều Project): Click phải chuột  chọn Set as StartUp Project. Khoa CNTT,Trường CĐ CNTT TP.HCM 38 Xác định trang web khởi động cho ứng dụng: Chọn trang cần khởi động  Click phải chuột  Chọn Set As Start Page. Khoa CNTT,Trường CĐ CNTT TP.HCM 39 1.3.2 Property Window Hiển thị cửa số Properties Window: Menu View | Properties Window. Dùng để thiết lập thuộc tính cho trang web và các điều khiển có trong trang web. Khoa CNTT,Trường CĐ CNTT TP.HCM 40 1.3.3 Toolbox Hiển thị Toolbox: Menu View  Toolbox Dùng để tạo các điều khiển trân trang. Khoa CNTT,Trường CĐ CNTT TP.HCM 41 1.3.4 Document Outline Window Hiển thị cửa sổ Document Outline: 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  rất dễ quản lý và thao tác với các đối tượng có trong trang Web. Khoa CNTT,Trường CĐ CNTT TP.HCM 42 1.4.1 Phần mềm Web Server(IIS) 1.4. Triển khai ứng dụng web(IIS) 1.4.2 Triển khai ứng dụng web Khoa CNTT,Trường CĐ CNTT TP.HCM 43 1.4.1 Phần mềm Web Server(IIS) Internet Information Services (IIS) là phần mềm Web Server của Microsot dành cho HĐH Windows 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. IIS có rất nhiều phiên bản: Windows 2000 tích hợp IIS 5.0. Windows XP tích hợp IIS 5.5 Windows XP tích hợp IIS 6 hỗ trợ các tính năng dành cho .NET và Web Service. Windows Vista tích hợp IIS 7.0  Giới thiệu về phần mềm Web Server(IIS) Khoa CNTT,Trường CĐ CNTT TP.HCM 44  Cài đặt IIS Trên Windows 2000/XP 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. Khoa CNTT,Trường CĐ CNTT TP.HCM 45 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ỉ : hoặc Khoa CNTT,Trường CĐ CNTT TP.HCM 46  Trên Windows Vista/ Windows 7 Bước 1: Start  Settings  Control Panel Bước 2: Classic View  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. Khoa CNTT,Trường CĐ CNTT TP.HCM 47 Để kiểm tra cài đặt: Khởi động trình duyệt truy cập địa chỉ : hoặc Khoa CNTT,Trường CĐ CNTT TP.HCM 48 Trên Windows 2000/XP Start  Settings  Control Panel  Administratrive tools  Internet Infomtic Services  Click phải Default Web site  Cấu hình Web Server Khoa CNTT,Trường CĐ CNTT TP.HCM 49 Qui định thư mục gốc ứng dụng: Home Directory Để thực thi ứng dụng từ địa chỉ 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ỉ: Khoa CNTT,Trường CĐ CNTT TP.HCM 50 Trên Windows Vista/ Windows 7  Start  Settings  Control Panel  Administratrive tools  IIS Manager Khoa CNTT,Trường CĐ CNTT TP.HCM 51 Quy định thư mục gốc ứng dụng: Directory Browsing Quy định trang chủ mặc định: Default Document Khoa CNTT,Trường CĐ CNTT TP.HCM 52 Khai báo thư mục vật lý (D:\MyWebsite) Khai báo nhãn thư mục ảo (Myweb)  Next Next  Finish  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. Click phải Default WebsiteNew/ Virtual Directory Trên Windows 2000/XP Khoa CNTT,Trường CĐ CNTT TP.HCM 53 OK Click phải: Default WebsiteAdd Application Thư mục vật lý Tên ánh xạ Trên Windows Vista/ Windows 7 Khoa CNTT,Trường CĐ CNTT TP.HCM 54 Truy cập để kiểm tra Từ IIS Manager: Click phải trang cần xem (Default.aspx)  Browse Hoặc Từ trình duyệt nhập: Khoa CNTT,Trường CĐ CNTT TP.HCM 55 1.4.2 Triển khai ứng dụng web (Publish web site)  Biên dịch ứng dụng và copy website đến thư mục cụ thể.  Các tập tin code behide đã được biên dịch thành .dll  Thao tác  Click phải vào project  Publish website  Sử dụng chức năng Publish web site Khoa CNTT,Trường CĐ CNTT TP.HCM 56 Khai báo đường dẫn thư mục sẽ chứa website publish đến  Mở cửa sổ Explorer, ta sẽ thấy thư mục được tạo  Vào IIS tạo thư mục ảo ánh xạ đến thư mục đã tạo  Kiểm tra :  Sử dụng thư mục đã tạo để Upload lên Webserver Khoa CNTT,Trường CĐ CNTT TP.HCM 57 Chương 2 Các Đối Tượng Trong ASP.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 58 2.1. Đối tượng Response Và Request 2.1.1. Đối tượng Response 2.1.2. Đối tượng Request 59 2.1.1 Đối tượng Response Đố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.  Phương thức Write 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 . . . Response.Write ("Chào các bạn!"); String s = DateTime.Today.ToShortDateString(); Response.Write(" " + "Hôm nay là: " + s + "" 60  Phương thức Redirect Dùng để chuyển yêu cầu truy cập của máy khách đến 1 URL khác Ví dụ: //Nếu đăng nhập thành công if () Response.Redirect("Default.aspx"); else Response.Redirect("Login.aspx"); ReSponse.Redirect(“URL chuyển đến”) 61 Ví dụ: Sử dụng đối tượng Response để thực hiện việc download tập tin. private void lnkDownload_Click() { String sTap_tin = "De cuongonthiTN2010.pdf"; String sDuong_dan = Server.MapPath("~/") + sTap_tin; Response.AddHeader("Content-Disposition","attachment; filename=" + sTap_tin); Response.WriteFile(sDuong_dan); Response.End(); } 62 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 Như đã biết URL(Uniform Resource Locators) của 1 trang có cấu trúc như sau: QueryString - gọi là chuỗi tham số cấu trúc như sau: Các cặp [=] phân cách nhau bằng dấu & 63 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. 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: String Masp = Request.QueryString["Ma"]; Response.Write(Masp); Request.QueryString[“Tên_tham_số”]; 64 2.2. Đối tượng Application Và Session 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 65 2.2.1. Đối tượng Application Đượ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.  Sử dụng biến Application Tạo biến Application Application["Tên biến“] = ; Lấy giá trị từ biến Application = Application["Tên biến“]; Ví dụ: Application.Lock(); Application["So_lan_truy_cap“] = 0; Application.UnLock(); s = Application["So_lan_truy_cap"]; 66 2.2.2. Đối tượng Session  Được dùng để lưu trữ thông tin của người dùng trong ứng dụng.  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ể.  Web Server sẽ tự động tạo một đối tượng Session cho mỗi người dùng mới kết nối vào ứng dụng và tự động hủy chúng nếu người dùng còn không làm việc với ứng dụng nữa.  Đố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". 67 Thuộc tính Timeout  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.  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à phút, đối tượng Session mà Web server cấp cho lần làm việc đó sẽ tự động được giải phóng.  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. 68 Phương thức Abandon Trong khoảng thời gian đối tượng Session được duy trì dù không có sự tương tác của Client, 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.  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.  Những yêu cầu sau đó được Web server coi như là một người dùng mới. 69 Sử dụng biến toàn cục với Session Tạo biến Session Session["Tên biến“] = ; Lấy giá trị từ biến Session = Session["Tên biến“] 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“] = “userITC" 70 2.3. Đối tượng Server Và Cookies 2.3.2 Đối tượng Cookies 2.3.1 Đối tượng Server 71 2.3.1 Đối tượng Server Được sử dụng để cung cấp thông tin của Server cho ứng dụng.  Thuộc tính MachineName: Dùng để lấy tên của Web Server.  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.  Phương thức Transfer(): 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. 72 2.3.2 Đối tượng Cookies  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.  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 73 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 = "UserITC"; 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"]; if (cookTenDN != null) Response.Write(Request.Cookies["TenDN"].Value); 74 2.4. Tập tin Global.asax Và Web.config 2.4.1 Tập tin Global.asax 2.4.2 Tập tin Web.config 75 2.4.1 Tập tin Global.asax Được dùng để:  Khai báo và khởi tạo giá trị cho các biến Application, Session.  Viết xử lý cho các sự kiện của 2 đối tượng Application và Session.  Một project chỉ có 1 tập tin Global.asax Cách tạo: 76 Cấu trúc tập tin Global.asax 77 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. 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). void Application_Start(object sender, EventArgs e) { // Code that runs on application startup Application["So_luot_truy_cap"] = 0; Application["So_nguoi_online"] = 0; } 78 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. 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; } 79 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). void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. Application["So_nguoi_online"] = int.Parse(Application["So_nguoi_online"].ToString()) - 1; } 80 2.4.2 Tập tin Web.config 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. <add name="KetnoiCSDL" connectionString="Data Source=PC\SQLEXPRESS; Initial Catalog=QLBansach; Integrated Security=True“ providerName="System.Data.SqlClient" /> ....... Tập tin cấu hình ứng dụng Web 81  defaultLanguage: qui định ngôn ngữ mặc định debug: Bật/tắt chế độ debug của ứng dụng  : Quản lý việc xử lý lỗi khi có lỗi phát sinh trong ứng dụng. Thuộc tính mode có các giá trị:  RemoteOnly : Cho người dùng thấy trang thông báo lỗi thông qua thuộc tính defaultRedirect (nếu có). Thông báo lỗi gồm mã lỗi và mô tả lỗi.  On : tùy vào thuộc tính defaultRedirect • Có qui định trang thông báo lỗi: hiển thị trang báo lỗi • Không qui định: hiển thị trang báo lỗi nhưng không hiển thị mã lỗi và mô tả lỗi  Off : Hiển thị lỗi trên trang aspx hiện hành 2.4.2.1. Một số cấu hình mặc định 82 <customErrors mode=“on“ defaultRedirect="Error/Err.aspx" /> 2.4.2.2. Ví dụ 83 Ví dụ 84 Ví dụ 85 2.4.2.3. Làm việc với Web.config Bổ sung thông tin cho ứng dụng Truy xuất thông tin System.Configuration.ConfigurationSettinger. AppSettings[“Khoá”];  Tập tin web.config có hỗ trợ tag với 2 thuộc tính là key và value cho phép chúng ta thêm vào các biến dùng để cấu hình ứng dụng. 86 Ví dụ: Tạo biến cấu hình dùng để lưu chuỗi kết nối CSDL SQLServer Lấy thông tin chuỗi kết nối <add name="KetnoiCSDL" connectionString="Data Source=PC\SQLEXPRESS; Initial Catalog=QLBansach;Integrated Security=True" providerName="System.Data.SqlClient" /> string StrCnn = ConfigurationManager.ConnectionStrings["KetnoiCSDL"]. ConnectionString.ToString(); 87 Chương 3 Các Điều Khiển WebServer Khoa CNTT Trường CĐ CNTT TP.HCM 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 88 3.1.1 ASP.NET Page  Trang ASP.NET là thành phần chính của giao diện, nơi chứa các điều khiển, thể hiện nội dung của trang web đến người dùng Khoa CNTT Trường CĐ CNTT TP.HCM Chuổi sự kiện của đối tượng Page Xẩy ra đầu tiên khi được yêu cầu Chứa các xử lý và giá trị khởi động ban đầu Khi trang web chuẩn bị trả về client Khi thoát trang web 89 3.1.2. Các thuộc tính  IsPostBack : Thuộc tính này cho biết trạng thái của trang web là được load lần đầu tiên hay là lần thứ n. Thường được sử dụng trong Page_Load() để kiểm tra trạng thái của trang web  SmartNavigation:  True: Giữ nguyên vị trí người dùng đang duyệt trang  False: Hiển thị lại phần đầu của trang web Khoa CNTT Trường CĐ CNTT TP.HCM 90 3.2. HTML Control  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 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. HTML Control trên Toolbox Khoa CNTT Trường CĐ CNTT TP.HCM 91 Để 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 Khoa CNTT Trường CĐ CNTT TP.HCM 92 3.3. ASP.NET Webserver Control Những lý do nên sử dụng Standard Web Control: Đơn giản: tương tự như Windows Form Controls. Đồng nhất: Có các thuộc tính giống nhau  dễ tìm hiểu và sử dụng. Hiệu quả: Tự động phát sinh ra các tag HTML theo từng loại Browser Khoa CNTT Trường CĐ CNTT TP.HCM 93 Bảng liệt kê các thuộc tính chung của các Web control Thuộc tính Ý nghĩa (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. 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. Khoa CNTT Trường CĐ CNTT TP.HCM 94 3.3.1. Label Được sử dụng để hiển thị và trình bày nội dung văn bản, chấp nhận hiển thị nội dung với các tag HTML. Ví dụ: lblA.Text = "Đây là chuỗi văn bản thường"; lblB.Text ="Còn đây là chuỗi được in đậm"; Khoa CNTT Trường CĐ CNTT TP.HCM 95 3.3.2 TextBox Được dùng để nhập và hiển thị dữ liệu văn bản. Các thuộc tính: Text: Nội dung chứa trong Textbox TextMode: 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ự. Rows: Số dòng hiển thị nếu textbox có nhiều dòng. Maxlength: Số ký tự tối đa được nhập Wrap: Văn bản có được phép tự động xuống dòng khi độ rộng của textbox không đủ. Khoa CNTT Trường CĐ CNTT TP.HCM 96 Khoa CNTT Trường CĐ CNTT TP.HCM 97 3.3.3. Image Được dùng để hiển thị hình ảnh lên trang Web. Các thuộc tính:  ImageURL: Đường dẫn tập tin hình ảnh.  AlternateText: Chuỗi văn bản sẽ hiển thị chú thích, . khi hình ảnh không tồn tại (không load được)  ImageAlign: Vị trí hiển thị giữa hình và nội dung.  NotSet  Left  Middle  TextTop  Right Khoa CNTT Trường CĐ CNTT TP.HCM 98 Khoa CNTT Trường CĐ CNTT TP.HCM Not set Left Middle TextTop Right 99 3.3.4. Button, ImageButton, LinkButton Mặc định là các nút Submit Button, khi được nhấn 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. - CommandName: Tên lệnh được sử dụng trong sự kiện Command. - 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. Khoa CNTT Trường CĐ CNTT TP.HCM 100 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: Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: protected void btTinhtien_Click(object sender, EventArgs e) { int soluong=int.Parse(txtSoluong.Text ); int dongia=int.Parse(txtDongia.Text ); int Thanhtien=soluong * dongia; txtThanhtien.Text = Thanhtien.ToString(); } 101 3.3.5. HyperLink Được sử dụng để tạo ra các liên kết siêu văn bản. Các thuộc tính: ImageURL: Tập tin ảnh hiển thị trên điều khiển. Text: Nhãn văn bản hiển thị trên điều khiển. 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 _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. Khoa CNTT Trường CĐ CNTT TP.HCM 102 Ví dụ: Tạo trang web gồm 3 điều khiển Hyperlink Khoa CNTT Trường CĐ CNTT TP.HCM 103 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: + 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. Khoa CNTT Trường CĐ CNTT TP.HCM 104 Tập hợp Items Add: Thêm mục mới vào cuối danh sách Items.Add(); Insert: Thêm mục mới vào danh sách tại một vị trí Items.Insert(,); Count: Trả về số mục (Item) có trong danh sách. Items.Count; Remove: Xóa đối tượng Item tại ra khỏi danh sách. Items.Remove(); RemoveAt: Xóa item tại vị trí index khỏi danh sách. Items.RemoveAt(); Clear: Xóa tất cả Item có trong danh sách. Items.Clear(); Khoa CNTT Trường CĐ CNTT TP.HCM 105 Xử lý mục chọn Thuộc tính Selected của đối tượng Items[i] để kiểm tra xem mục thứ i đó có được chọn hay không. SelectedIndex: Cho biết chỉ số của mục được chọn. Trong trường hợp chọn nhiều mục SelectedIndex sẽ trả về chỉ số mục chọn đầu tiên. SelectedItem: Cho biết mục được chọn. Trong trường hợp chọn nhiều mục, SelectedItem sẽ trả về mục chọn đầu tiên. SelectedValue: Cho biết giá trị của mục được chọn. Trong trường hợp chọn nhiều mục, SelectedValue sẽ trả về giá trị mục chọn đầu tiên. Khoa CNTT Trường CĐ CNTT TP.HCM 106 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. Khoa CNTT Trường CĐ CNTT TP.HCM 107 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: 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; i ++) { if (lstDiadanh.Items[i].Selected) lbDiadanh.Text += "" + lstDiadanh.Items[i].Value; } } 108 3.3.7. Checkbox, RadioButton Các thuộc tính Checked: Trạng thái của mục chọn (chọn hay không) TextAlign: Vị trí của điều khiển so với chuỗi văn bản. AutoPostBack: Có được tự động PostBack về Server khi các mục chọn bị thay đổi, mặc định là False. 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. Khoa CNTT Trường CĐ CNTT TP.HCM 109 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ữ Khoa CNTT Trường CĐ CNTT TP.HCM 110 3.3.8. CheckBoxList, RadioButtonList  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.  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: Kéo thả RadioButtonList (Hoặc CheckboxList) vào Form  Chọn Edit Items Khoa CNTT Trường CĐ CNTT TP.HCM 111 Khoa CNTT Trường CĐ CNTT TP.HCM Các thuộc tính RepeatColumns: Số cột hiển thị. RepeatDirection: Hình thức hiển thị  Vertical: Theo chiều dọc  Horizontal: Theo chiều ngang 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. 112 Ví dụ: Tạo trang web gồm Nhóm RadioButton Thu nhập Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: Private Sub rblThu_nhap_SelectedIndexChanged() lblThu_nhap.Text = "Bạn chọn thu nhập: " + rblThu_nhap.SelectedItem.Text; End Sub 113 Ví dụ: Tạo trang web hiển thị các thông tin. Khoa CNTT Trường CĐ CNTT TP.HCM 114 3.4. Các điều khiển khác 3.4.1. Điều khiển Literal 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. Đ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). Khoa CNTT Trường CĐ CNTT TP.HCM 115 Khoa CNTT Trường CĐ CNTT TP.HCM Ví dụ: Lệnh xử lý: protected void Page_Load(object sender, EventArgs e) { Label1.Text="Đây là chuỗi ký tự trong label"; Literal1.Text = " Đây là chuỗi ký tự trong Literial"; } Khi thiết kế. Xem source: Đây là chuỗi ký tự trong label Đây là chuỗi ký tự trong Literial 116 3.4.2. Điều khiển AdRotator Đượ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). Khoa CNTT Trường CĐ CNTT TP.HCM Sự kiện AdCreated: Xảy ra khi điều khiển tạo ra các quảng cáo 117 Khoa CNTT Trường CĐ CNTT TP.HCM 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) Đường dẫn tập tin hình ảnh Đường dẫn liên kết Chuỗi văn bản Tooltip Từ khóa dùng để lọc hình ảnh Tần suất hiển thị của ảnh Lưu ý: Các giá trị có phân biệt chữ Hoa chữ thường 118 Khoa CNTT Trường CĐ CNTT TP.HCM Ví dụ: Tạo mẫu Quangcao sử dụng điều khiển AdRotator Bước 1. Thiết kế giao diện Bước 2. Tạo tập tin dữ liệu: Quangcao.xml 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 119 Khoa CNTT Trường CĐ CNTT TP.HCM Nhập vào nội dung cho tập tin Quangcao.xml Pictures\Baihatviet.gif Web Nhạc bài hát việt Music 10 120 Khoa CNTT Trường CĐ CNTT TP.HCM 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 121 Khoa CNTT Trường CĐ CNTT TP.HCM Bước 3. Thiết lập thuộc tính cho điều khiển adQuangcao AdvertisementFile: Quangcao.xml Target: _blank KeywordFilter: Không thiết lập (Hiển thị tất cả ảnh) Bước 4. Thi hành ứng dụng 122 3.4.3. Điều khiển Calendar Dùng để hiển thị và cập nhật dữ liệu kiểu ngày Khoa CNTT Trường CĐ CNTT TP.HCM 123 Thuộc tính DayHeaderStyle: Tiêu đề của các ngày trong tuần DayStyle: Các ngày trong điều khiển. NextPrevStyle: Tháng trước/sau của tháng đang chọn. SelectedDayStyle: 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. SelectedDate: Giá trị ngày được chọn trên điều khiển Khoa CNTT Trường CĐ CNTT TP.HCM Sự kiện 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 124 Ví dụ: Tạo Calendar trên trang web Khoa CNTT Trường CĐ CNTT TP.HCM Bước 1: Tạo Calendar vào trang Bước 2: Chọn mẫu định dạng: Click phải /Auto Format 125 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: protected void Page_Load(object sender, EventArgs e){ 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"); } 126 3.4.4. Điều khiển File Upload. 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. Khoa CNTT Trường CĐ CNTT TP.HCM Thuộc tính Ý nghĩa 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 127 Các phương thức: 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. Khoa CNTT Trường CĐ CNTT TP.HCM 128 Ví dụ: Tạo điều khiển File Upload Khoa CNTT Trường CĐ CNTT TP.HCM Thiết kế và tạo FileUpload vào trang Xử lý sự kiện: protected void Button1_Click(object sender, EventArgs e) { 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" ; } 129 3.4.5. Điều khiển Panel và PlaceHolder  Dùng để chứa các điều khiển khác.  Thuộc tính Visible=True : các điều khiển chứa bên trong sẽ được hiển thị và ngược lại. 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. Khoa CNTT Trường CĐ CNTT TP.HCM 130 Khoa CNTT Trường CĐ CNTT TP.HCM Thuộc tính DefaultButton: Định nghĩa button mặc định trong panel (sẽ được thực hiện khi nhấn Enter) Direction: Thiết lập hướng hiển thị nội dung được đưa ra trong panel: NotSet, LeftToRight, RightToLeft. GroupingText: Trình bày Panel như 1 Fieldset với một chú giải riêng biệt. HorizontalAlign: Chỉ ra hướng ngang thể hiện nội dung của panel:Center, Justify, Left, NotSet, Right. ScrollBars: Hiển thị scrollbars khi nội dung trong panel vượt quá kích thước: Auto, Both, Horizontal, None, Vertical. 131 Ví dụ: Tạo trang sử dụng Panel Khoa CNTT Trường CĐ CNTT TP.HCM Thiết kế: 132 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: protected void Page_Load(object sender, EventArgs e) { for (int i = 1; i < 100; i++) { buletnghenghiep.Items.Add("Nghề "+i.ToString()); } } 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; } 133 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. Khoa CNTT Trường CĐ CNTT TP.HCM 134 Khoa CNTT Trường CĐ CNTT TP.HCM Thuộc tính  ActiveViewIndex: Lựa chọn điều khiển View được đưa ra hiển thị bằng chỉ số Index  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  GetActiveView: Cho phép lấy về thông tin của điều khiển View được lựa chọn.  SetActiveView: Cho phép thiết lập điều khiển View được hiển thị. Sự kiện  ActiveViewChanged: Khi điều khiển View được chọn 135 Ví dụ: Tạo trang sử dụng MultiView Khoa CNTT Trường CĐ CNTT TP.HCM Thiết kế: Tạo 1 Multiview1 gồm 3 View (View1 View2, View3) Tạo Control Menu1 gồm 3 Tab (Tab1, Tab2, Tab3) Tạo Control Menu vào Form 136 Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Edit Menu Item 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) 137 Khoa CNTT Trường CĐ CNTT TP.HCM Bổ sung nội dung vào các view tương ứng 138 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: void Menu1_MenuItemClick(object sender, MenuEventArgs e){ int index = int.Parse(e.Item.Value); MultiView1.ActiveViewIndex = index; } void Page_Load(object sender, EventArgs e){ if (!IsPostBack){ MultiView1.ActiveViewIndex = 0; } } 139 3.5. Đối tượng ViewState  Được cung cấp để lưu lại những thông tin của trang web sau khi web server gởi kết quả về cho Client.  Mặc định, trang web sẽ cho phép sử dụng đối tượng ViewState thông qua thuộc tính EnableViewState = True Khoa CNTT Trường CĐ CNTT TP.HCM Gán giá trị cho ViewState: ViewState("Tên trạng thái") = ; Nhận giá trị từ đối tượng ViewState: = ViewState("Tên trạng thái"); 140  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.  Đố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 Khoa CNTT Trường CĐ CNTT TP.HCM 141 Ví dụ: Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: Private Sub Page_Load() Handles MyBase.Load If Not IsPostBack Then ViewState("So_lan") = 0 Else ViewState("So_lan") += 1 End If lblTB.Text = "Số lần Postback: " + CStr(ViewState("So_lan")) End Sub Private Sub butDem_Click() Handles butDem.Click lblTB.Text = "Số lần Postback: " + Convert.ToString(ViewState("So_lan")) End Sub 142 Xem Source Khoa CNTT Trường CĐ CNTT TP.HCM 143 Chương 4 Các Điều Khiển Kiểm Tra Dữ Liệu Khoa CNTT Trường CĐ CNTT TP.HCM 4.1 Giới thiệu chung 4.2 Các Điều khiển kiểm tra dữ liệu 144 4.1. Giới thiệu chung 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. Khoa CNTT Trường CĐ CNTT TP.HCM 145 Khoa CNTT Trường CĐ CNTT TP.HCM 146 4.2 Điều khiển kiểm tra dữ liệu-Validation Control Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.1. Điều khiển Required Field Validator 4.2.2. Điều khiển Compare Validator 4.2.3. Điều khiển Range Validator 4.2.4. Điều khiển Regular Expression Validator 4.2.5. Điều khiển Custom Validator 4.2.6. Điều khiển Validation Summary 147 Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.1. Điều khiển Required Field Validator Công dụng: Dùng để kiểm tra giá trị trong điều khiển phải được nhập. Để kiểm tra ràng buộc khác rỗng (Not null) Thuộc tính: InitialValue: Giá trị khởi động. 148 Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.2 Điều khiển Compare Validator Công dụng: Để so sánh giá trị của điều khiển với giá trị của đ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 miền giá trị, kiểu dữ liệu, liên thuộc tính. Thuộc tính:  ControlToCompare: Tên điều khiển cần so sánh.  Operator: Qui định phép so sánh (=, >, >=, ), kiểm tra kiểu dữ liệu ( DataTypeCheck)  Type: Qui định kiểu dữ liệu để kiểm tra hoặc so sánh(String, Integer, Double, Date, Currency)  ValueToCompare: Giá trị cần so sánh 149 Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.3 Điều khiển Range Validator Công dụng: Để kiểm tra giá trị trong điều khiển có nằm trong đ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 150 Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.4. Điều khiển Regular Expression Validator Công dụng: Để 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:  ValidationExpression: Qui định mẫu kiểm tra dữ liệu 151 Khoa CNTT Trường CĐ CNTT TP.HCM Bảng mô tả các ký hiệu sử dụng trong Validation Expression 152 Khoa CNTT Trường CĐ CNTT TP.HCM 4.2.5. Điều khiển Custom Validator Công dụng: Điều khiển này cho phép bạn tự viết hàm xử lý kiểm tra lỗi. Sự kiện: 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. 153 Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 4.2.6. Điều khiển Validation Summary Công dụng: Để 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 thông báo lỗi - giá trị 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 154 Khoa CNTT Trường CĐ CNTT TP.HCM Thuộc tính: - 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. 155 Khoa CNTT Trường CĐ CNTT TP.HCM 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. 156 Khoa CNTT Trường CĐ CNTT TP.HCM 157 Khoa CNTT Trường CĐ CNTT TP.HCM Thuộc tính Text của các điều khiển kiểm tra dữ liệu đều là: (*) 158 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý sự kiện: private void btnDang_ky_Click(...) { lblThong_bao.Text = "Đăng ký thành công"; } 159 Khoa CNTT Trường CĐ CNTT TP.HCM 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ệ: 160 Khoa CNTT Trường CĐ CNTT TP.HCM Nếu tất cả đều hợp lệ 161 Chương 5 Các Điều Khiển Liên Kết CSDL Khoa CNTT Trường CĐ CNTT TP.HCM 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 162 5.1. Điều khiển kết nối CSDL–Data-Source Control  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 . . .  Có các điều khiển Data-Source sau: SQLDataSource, Access Data Source, XML Data Source, . . . Khoa CNTT Trường CĐ CNTT TP.HCM 163 CSDL MẪU Khoa CNTT Trường CĐ CNTT TP.HCM 164 5.1.1 Điều khiển SQLDataSource  Dùng để kết nối CSDL trong các hệ quản trị CSDL SQLServer, Ocracle Server, . . .  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 . . . Khoa CNTT Trường CĐ CNTT TP.HCM Tạo kết nối Kéo điều khiển SQLDataSource từ Toolbox vào trang Chọn Configure Data Source  165 Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 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 166 Khoa CNTT Trường CĐ CNTT TP.HCM  Chọn QTCSDL (Microsoft SQLServer)  Chọn Continue để tiếp tục 167 Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Hệ QT CSDL Khai báo các thông số cho kết nối Chọn Tên Server Chọn thông tin đăng nhập Chọn tên CSDL Kiểm tra kết nối Đồng ý kết nối 168 Khoa CNTT Trường CĐ CNTT TP.HCM Đặt tên cho kết nối Tên kết nối 169 Khoa CNTT Trường CĐ CNTT TP.HCM 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 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 170 Khoa CNTT Trường CĐ CNTT TP.HCM  Chọn Test Query để kiểm tra kết quả nguồn dữ liệu.  Chọn Finish để hòan thành 171 Khoa CNTT Trường CĐ CNTT TP.HCM Điều khiển SQL DataSource và tham số Request.QueryString Để lọc dữ liệu theo điều kiện thì giá trị tham số có thể được gán trực tiếp thông qua đối tượng Request.Querystring (Truyền tham số qua liên kết) Khi click vào liên kết trang có địa chỉ kèm theo tham số dạng: . . ./SachNXB.aspx?MaNXB=3 172 Khoa CNTT Trường CĐ CNTT TP.HCM 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 173 Khoa CNTT Trường CĐ CNTT TP.HCM 174 Khoa CNTT Trường CĐ CNTT TP.HCM Với các thuộc tính:  HeaderText: Nhãn tiêu đề cột  Text: Nhãn hiện thị trong tất cả các ô  DataTextField: Giá trị từ 1 field chỉ định trong nguồn DL  DataNavigateUrlFields: Danh mục tên các tham số ghi cách nhau bởi dấu “,”  DataNavigateUrlFormatting: Địa chỉ trang liên kết kèm tham số dạng: ~/SachNXB.aspx?MaNXB={0} 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 , 175 Khoa CNTT Trường CĐ CNTT TP.HCM 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). Xác định nguồn dữ liệu, sau đó chọn Where để chỉ định điều kiện 176 Khoa CNTT Trường CĐ CNTT TP.HCM Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (QueryString) QueryString field: Tên tham số đã truyền Chọn Add để chấp nhận thêm tham số 177 Khoa CNTT Trường CĐ CNTT TP.HCM Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (QueryString) QueryString field: Tên tham số đã truyền Chọn Add để chấp nhận thêm tham số 178 Khoa CNTT Trường CĐ CNTT TP.HCM Thi hành xem kết quả 179 Khoa CNTT Trường CĐ CNTT TP.HCM Điều khiển SQL DataSource và tham số Request.Form Để 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: 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: 180 Khoa CNTT Trường CĐ CNTT TP.HCM Tạo SqlDataSource với nguồn dữ liệu như sau: 181 Khoa CNTT Trường CĐ CNTT TP.HCM  Columns: Tên cột làm điều kiện  Operator: Toán tử so sánh  Source: Loại tham số (Form)  Form field: Tên tham số đã truyền (Tên Textbox)  Chọn Add để chấp nhận thêm tham số 182 Khoa CNTT Trường CĐ CNTT TP.HCM Điều khiển SQL DataSource và tham số là các Controls Có thể khai báo tham số trong điều khiển 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 183 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện Thiết kế Dropdownlist (ddlChude) từ Table Chude Đặt thuộc tính ID: ddlChude DataSourceID: SqlDataSource1 DataTextField: TenCD (Field hiện thị) AutoPostBack: True DataValuefield: MaCD (Field để truyền tham số) 184 Khoa CNTT Trường CĐ CNTT TP.HCM GridView (GridView1) Với nguồn dữ liệu từ Table Sach Và tham số điều kiện (Where) 185 Khoa CNTT Trường CĐ CNTT TP.HCM  Columns: Tên cột làm điều kiện  Operator: Toán tử so sánh  Source: Loại tham số (Control)  ControlID: Tên tham số đã truyền  Chọn Add để chấp nhận thêm tham số 186 Khoa CNTT Trường CĐ CNTT TP.HCM Đ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 Select * From sach Where Dongia Between @Giatu and @Giaden 187 Khoa CNTT Trường CĐ CNTT TP.HCM Khi cấu hình cho điều khiển SQLDataSource Chọn loại nguồn dữ liệu là từ Procedure 188 Khoa CNTT Trường CĐ CNTT TP.HCM Chọn tên Procedure 189 Khoa CNTT Trường CĐ CNTT TP.HCM Xác định giá trị cho các tham số của Procedure 190 5.1.2 Điều khiển Access DataSource  Dùng để kết nối với cơ sở dữ liệu Access MDB).  Thực hiện Tạo AccessDataSource từ thanh Toolbox. Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Configure Data Source . . .: Để thực hiện kết nối 191 Khoa CNTT Trường CĐ CNTT TP.HCM Xác định nguồn dữ liệu và điều kiện tham số như SQLData Source 192 5.1.3 Điều khiển XMLDataSource  Điều khiển XMLDataSource được sử dụng để kết nối CSDL định dạng XML.  Thực hiện: Tạo tập tin XML (DSSinhvien). Khoa CNTT Trường CĐ CNTT TP.HCM <Sinhvien MaSV="SV01" HotenSV="Trần Văn Nam" Diachi="123 Trần Hưng Đạo, Q5" Email="nam@gmail.com" /> <Sinhvien MaSV="SV02" HotenSV="Nguyễn Thị Lý" Diachi="45 Hai Bà Trưng, Q1" Email="lythi@yahoo.com" /> <Sinhvien MaSV="SV03" HotenSV="Nguyễn Thị Bình" Diachi="31 Lý Thường Kiệt,TB" Email="kiet@gmail.com"/> 193 Tạo XMLDataSource từ Toolbox. Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Configure Data Source . . .: Để thực hiện kết nối 194 Chọn tập tin XML.  Chọn OK để hoàn tất Khoa CNTT Trường CĐ CNTT TP.HCM 195 5.2. Điều khiển liên kết cơ sở dữ liệu 5.2.1 Gridview 5.2.2 DataList 5.2.3 Repeater 5.2.4 Detailview & FormView Khoa CNTT Trường CĐ CNTT TP.HCM 196 5.2.1 Gridview Khoa CNTT Trường CĐ CNTT TP.HCM  Giới thiệu: 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ế. 197 Khoa CNTT Trường CĐ CNTT TP.HCM  Tạo GridView vào trang Kéo Control GridView vào trang 198 Khoa CNTT Trường CĐ CNTT TP.HCM  Định dạng tự động 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 199 Khoa CNTT Trường CĐ CNTT TP.HCM  Kết nối nguồn dữ liệu 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 đó) Ghi chú: Tạo Datasource như được trình bày trước 200 Khoa CNTT Trường CĐ CNTT TP.HCM Thi hành xem kết quả: 201 Khoa CNTT Trường CĐ CNTT TP.HCM Thêm cột Trong cửa sổ Gridview Task chọn : Add New Column  Chọn Loại field : BoundField  Tiêu đề côt : Header Text  Tên field dữ liệu: DataField  Ok hòan thành 202 Khoa CNTT Trường CĐ CNTT TP.HCM  Hiệu chỉnh các cột Trong cửa sổ Gridview Task chọn : Edit Column 203 Khoa CNTT Trường CĐ CNTT TP.HCM AvailableFields: Chọn lọai Field liên kết dữ liệu BoundField: Cột dạng Textbox. Checkbox Field: Cột dạng Checkbox. Hyperlink Field: Cột dạng liên kết. Button Field: Cột dạng nút lệnh CommandField: Cột dạng nút lệnh được thiết kế sẵn Select: Nút lệnh chọn dòng dữ liệu Edit, Cancel, Update: Các nút cập nhật d.liệu Delete: Nút lệnh xóa dòng dữ liệu TemplateField: Cột do người dùng tự thiết kế. 204 Khoa CNTT Trường CĐ CNTT TP.HCM Convert this Field into a Template Column: Chuyển cột hiện hành thành cột dạng Template Column. BoundColumn properties: Thông tin chi tiết cho các cột HeaderText, Footer Text: Tiêu đề trên/dưới của cột Header Image: Hình hiển thị trên tiêu đề cột. Sort Expression: Biểu thức sắp xếp của cột. Visible: Qui định cột có được hiển thị hay không. DataField: Qui định tên field dữ liệu cần hiển thị. Data formatting expression: Biểu thức định dạng {0:}. Vd: {0:000.00}, {0:0.##} {0:dd/MM/yyyy}, {0:hh/mm/ss tt} 205 Khoa CNTT Trường CĐ CNTT TP.HCM  Thiết lập các thuộc tính định dạng lưới Chọn GridView  Properties - ShowHeader/ShowFooter: Hiện / Ẩn Phần đầu và chân của GridView 206 Khoa CNTT Trường CĐ CNTT TP.HCM - HeaderStyle/FooterStyle: Định dạng dòng Header/Footer 207 Khoa CNTT Trường CĐ CNTT TP.HCM - RowStyleAlternatingRowStyle: Định dạng dòng dữ liệu lẽ/chẵn: 208 Khoa CNTT Trường CĐ CNTT TP.HCM - AlowPaging : Phân trang - Page size: Qui định số dòng/trang - Possition: Qui định vị trí hiển thị của bộ nút di chuyển (top, bottom, top&bottom). - Mode: Qui định hình thức hiển thị của bộ nút di chuyển (kiểu số, kiểu ký hiệu). 209 Khoa CNTT Trường CĐ CNTT TP.HCM - AllowSorting: Sắp xếp (theo thuộc tính DataKeyNames 210 5.2.2 Điều khiển DataList Khoa CNTT Trường CĐ CNTT TP.HCM  Giới thiệu: 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) 211 Khoa CNTT Trường CĐ CNTT TP.HCM Một số thuộc tính cần chú ý RepeatDirection: Qui định hướng hiển thị dữ liệu 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ị 212 Khoa CNTT Trường CĐ CNTT TP.HCM - 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 - 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. 213 Khoa CNTT Trường CĐ CNTT TP.HCM Ghi chú: Để 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. 214 Khoa CNTT Trường CĐ CNTT TP.HCM Datalist không hỗ trợ phân trang như Gridview, vì vậy cần phải tạo phân trang bằng tay. Công cụ CollectionPager là 1 control cho phép tạo phân trang mà không cần viết nhiều code. Phân Trang Datalist với CollectionPager 215 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 1. Download file CollectionPager.dll, chép vào thư mục BIN của website 2. Đưa control này vào toolbox RightClick vào công cụ Standard của toolbox--->chọn Choose Item 216 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 3. Browse đến tập tin CollectionPager.dll trong thư mục BIN của website, công cụ CollectionPager sẽ xuất hiện như hình Chọn Browse đên thư mục chon control này--->bấm ok nhé 217 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 4. Kéo thả CollectionPager vào trang và tùy chỉnh thông số 5. Viết code trong sự kiện Page_Load của trang protected void Page_Load(object sender, EventArgs e) { //lấy dữ liệu từ SQLDatasource DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); CollectionPager1.DataSource = dv;//chỉ định datasource cho CollectionPager //Chỉ định đối tượng Datalist mà CollectionPager sẽ phân trang CollectionPager1.BindToControl = DataList1; //gán dữ liệu đã phân trang cho Datalist DataList1.DataSource = CollectionPager1.DataSourcePaged; } 218 Khoa CNTT Trường CĐ CNTT TP.HCM  CollectionPager không chỉ hoạt động trên Datalist mà còn hoạt động với các Điều khiển hiển thị dữ liệu khác như Repeater, hoặc bất kỳ đối tượng nào cần phân trang.  Ngoài việc sử dụng CollectionPager, việc phân trang còn có thể thực hiện bằng việc viết mã (sinh viên tự tìm hiểu thêm ) 219 5.2.3 Điều khiển Repeater Khoa CNTT Trường CĐ CNTT TP.HCM Giới thiệu: 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. 220 Khoa CNTT Trường CĐ CNTT TP.HCM Nội dung hiển thị cho tiêu đề 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. 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. : 221 Khoa CNTT Trường CĐ CNTT TP.HCM Ví dụ: Bước 1: Tạo mới điều khiển Repeater: rptChudesach vào trang Web 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 Bước 3:. Chuyển trang Web qua dạng code HTM bổ sung các tag sau: 222 Khoa CNTT Trường CĐ CNTT TP.HCM Mã CĐ Tên CĐ 223 5.2.4 Detailview & FormView Khoa CNTT Trường CĐ CNTT TP.HCM Giới thiệu: 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. 224 Detailview Khoa CNTT Trường CĐ CNTT TP.HCM Hiển thị dữ liệu với DetailView DetailView được đưa ra hiển thị như 1 bảng()trong HTML để hiển thị dữ liệu 1 bản ghi. Ví dụ: Trang XemthongtinKH.aspx 225 Khoa CNTT Trường CĐ CNTT TP.HCM Sử dụng Fields với điều khiển DetailView DetailView hỗ trợ tất cả các Field như GridView : BoundField,CheckBoxField,CommandField,ButtonField, HyperLinkField, ImageField, TemplateField 226 Khoa CNTT Trường CĐ CNTT TP.HCM 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 227 Khoa CNTT Trường CĐ CNTT TP.HCM Minh họa: 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. 228 Formview Khoa CNTT Trường CĐ CNTT TP.HCM Hiển thị dữ liệu với FormView 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 229 Khoa CNTT Trường CĐ CNTT TP.HCM Trình bày dữ liệu sử dụng Edit Template Tạo FormView vào trang và liên kết dữ liệu Tại cửa sổ thiết kế chọn Edit Tempalte từ cửa sổ FormView Task 230 Khoa CNTT Trường CĐ CNTT TP.HCM 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 231 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý phân trang với điều khiển FormView Để tạo phân trang chỉ định thuộc 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 232 Khoa CNTT Trường CĐ CNTT TP.HCM Minh họa: 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 233 Chương 06 Thiết Kế Layout 6.1 Web User controls 6.2 Master Pages 6.3 Themes Và Skin 6.4 Site Navigation Controls Khoa CNTT Trường CĐ CNTT TP.HCM 234 6.1. Web User controls 6.1.1 Giới thiệu Khi kết hợp các control để tạo thành một control mới gọi là Web user control (UC)  Sử dụng UC cũng giống như sử dụng thủ tục, hàm  khả năng tái sử dụng UC trên các trang web  Phần mở rộng của US là: .ascx Khoa CNTT Trường CĐ CNTT TP.HCM 235 6.1.2 Tạo và sử dụng User control Tạo mới User control:  Tạo mới 1 Web user control  Thiết kế giống như thiết kế 1 trang aspx Khoa CNTT Trường CĐ CNTT TP.HCM Chọn: Web User Control Đặt tên: *.ascx 236 Thiết kế User control:  Thiết kế các controls theo ý muốn Khoa CNTT Trường CĐ CNTT TP.HCM 237 Sử dụng User control:  Kéo và thả UC vào trang aspx Khoa CNTT Trường CĐ CNTT TP.HCM 238 6.2. Master Pages 6.2.1 Giới thiệu  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)  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 Khoa CNTT Trường CĐ CNTT TP.HCM  Master page là tập tin có phần mở rộng .master  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 239 Khoa CNTT Trường CĐ CNTT TP.HCM Master page Content page Trang kết quả 240 6.2.2 Tạo trang Master  Bước 1: Tạo mới Item  chọn icon Master Page và đặt tên trang: *.master Khoa CNTT Trường CĐ CNTT TP.HCM 241  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 Khoa CNTT Trường CĐ CNTT TP.HCM 242 6.2.3 Sử dụng trang Master  Bước 1: Tạo mới trang web (.aspx) khai báo sử dụng trang master Khoa CNTT Trường CĐ CNTT TP.HCM 243  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) Khoa CNTT Trường CĐ CNTT TP.HCM 244 6.3. Themes Và Skin Khoa CNTT Trường CĐ CNTT TP.HCM 6.3.1 Giới thiệu  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  Dùng áp dụng chung cho tất cả các điều khiển trong một ứng dụng hoặc tất cả các ứng dụng trên webserver  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  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. 245 Khoa CNTT Trường CĐ CNTT TP.HCM  Có 2 loại skin:  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ển có cùng kiểu khai báo.  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ể.  Tạo file skin:  Thêm mới 1 item 246 Khoa CNTT Trường CĐ CNTT TP.HCM  Tạo file skin:  Thêm mới 1 itemchọn skin fileđặt tên file .skin 247 Khoa CNTT Trường CĐ CNTT TP.HCM 248 Khoa CNTT Trường CĐ CNTT TP.HCM  Tạo Theme:  Click phải ProjectAdd ASP.NET FolderTheme 249 Khoa CNTT Trường CĐ CNTT TP.HCM 250 Khoa CNTT Trường CĐ CNTT TP.HCM 251 6.4. Site Navigation Controls Khoa CNTT Trường CĐ CNTT TP.HCM Giới thiệu  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  Các điều khiển này thường sử dụng trong trang Master 252 6.4.1 Điều khiển Menu Khoa CNTT Trường CĐ CNTT TP.HCM 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 Thiết kế Menu 253 Khoa CNTT Trường CĐ CNTT TP.HCM Auto Format: Chọn mẫu định dạng 254 Khoa CNTT Trường CĐ CNTT TP.HCM  Edit Menu Items: Thiết kế Menu 255 6.4.2 Điều khiển TreeView Khoa CNTT Trường CĐ CNTT TP.HCM 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 Thiết kế các node 256 Khoa CNTT Trường CĐ CNTT TP.HCM Auto Format: Chọn mẫu định dạng 257 Khoa CNTT Trường CĐ CNTT TP.HCM  Edit Node: Thiết kế các node 258 6.4.3 Điều khiển SiteMapPath Khoa CNTT Trường CĐ CNTT TP.HCM 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ội dung cấu trúc của Website mặc định được chứa trong tập tin Web.sitemap Thao tác tạo: Tạo tập tin Web.sitemap 259 Khoa CNTT Trường CĐ CNTT TP.HCM Tạo điều khiển SitemapPath vào các trang Nút cháu Nút gốc Nút con Trangchu.aspx Tinthethao.aspx 260 Khoa CNTT Trường CĐ CNTT TP.HCM Kết quả 261 6.4.4 Điều khiển SiteMapDataSource Khoa CNTT Trường CĐ CNTT TP.HCM Dùng để chứa nguồn dữ liệu lưu trữ trong tập tin Web.sitemap  Thường sử dụng kết hợp với các điều khiển Menu, TreeView  Để liên kết với TreeView, Menu chỉ định thuộc tính DataSourceID của 2 điều khiển này là tên SiteMapDataSource 262 Khoa CNTT Trường CĐ CNTT TP.HCM Thực thi VÍ DỤ 263 Chương 7 Lập Trình Web Form Với ADO.Net Khoa CNTT, Trường CĐ CNTT TP.HCM 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ử 264 7.1. Tổng Quan Về ADO.Net 7.1.1 Giới thiệu Khoa CNTT, Trường CĐ CNTT TP.HCM 7.1.2 Kiến trúc ADO .Net 7.1.3 Minh họa tạo kết nối CSDL 265 Hầu hết ứng dụng windows hay website đều cần có CSDL, để lưu trữ, xử lý, tìm kiếm và báo cáo 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à: Lưu dữ liệu tập trung. Đảm bảo toàn vẹn dữ liệu. Đảm bảo khả năng truy xuất đồng thời. Đảm bảo thời gian hồi đáp ngắn. Bảo mật dữ liệu. Trao đổi dữ liệu giữa các hệ thống khác nhau Khoa CNTT, Trường CĐ CNTT TP.HCM 7.1.1 Giới Thiệu 266 Vấn đề này được giải quyết dựa vào khả năng của các Hệ QTCSDL. .Net truy xuất DL qua ADO.NET, đặc điểm chính của ADO.NET là:  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.  Khả năng xử lý dữ liệu chuẩn XML (Có thể trao đổi giữa bất kỳ hệ thống nào) Khoa CNTT, Trường CĐ CNTT TP.HCM 267 7.1.2 Kiến Trúc ADO.Net Khoa CNTT, Trường CĐ CNTT TP.HCM MANAGED PROVIDER CONTENT COMPONENT 268 Kiến trúc ADO.NET có thể chia làm 2 phần chính: 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, 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. Khoa CNTT, Trường CĐ CNTT TP.HCM 269  DataReader: Là đối tượng giúp truy cập dữ liệu nhanh chóng.  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ệ.  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. Khoa CNTT, Trường CĐ CNTT TP.HCM 270 7.1.3 Minh họa tạo kết nối CSDL Khoa CNTT, Trường CĐ CNTT TP.HCM Cơ bản các bước thực hiện với database Bước 1: Tạo kết nối Bước 2: Mở kết nối dữ liệu Bước 3: Tạo lệnh điều khiển truy vấn SQL Bước 4: Thực thi lệnh Bước 5: Đóng kết nối Bước 6: in kết quả 271 Khoa CNTT, Trường CĐ CNTT TP.HCM 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 } } Ví dụ: 272 7.2. Các đối tượng trong ADO.Net 7.2.1 Connection 7.2.2 Command Khoa CNTT, Trường CĐ CNTT TP.HCM 273 7.2.1 Connection 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 System.Data.Oledb : Sử dụng với Access System.Data.SqlCient : Sử dụng với SQLServer Ứng với mỗi tên miền: System.Data.Oledb.OledbConnection System.Data.SqlClient.SqlConnection Và các Data Provider khác: System.data.OcracleClient(Ocracle) MicroSoft.data.Odbc(Thông qua ODBC của HĐH) Microsoft.Data.Sqlxml (XML trên Sqlserver) Khoa CNTT, Trường CĐ CNTT TP.HCM 274 Connection String: 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: Khoa CNTT, Trường CĐ CNTT TP.HCM 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 275 Khoa CNTT, Trường CĐ CNTT TP.HCM 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 { 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(); } } 276 Khoa CNTT, Trường CĐ CNTT TP.HCM Nếu kết nối với CSDL SQLServer Data Source/Server: Tên Server Initial Catalog/DataBase: Tên CSDL 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) 277 Khoa CNTT, Trường CĐ CNTT TP.HCM 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 { protected void Page_Load(object sender, EventArgs e) { String StrCnn= @"Data Source=MINHVU-PC\SQLEXPRESS; Initial Catalog=QLbansach; User ID=sa;Password=;"; SqlConnection cnn = new SqlConnection(StrCnn); cnn.Open(); //Truy xuất, xử lý dữ liệu cnn.Close(); } } 278 Các thuộc tính Của Connection Database: Tên CSDL Data Source: Tên Server Provider: Tương ứng với Provider của HQTCSDL 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ở Khoa CNTT, Trường CĐ CNTT TP.HCM 279 Các phương thức Change Database: Thay đổi Database làm việc Close : Đóng kết nối Dispose: Giải phóng bộ nhớ Open: Thực hiện kết nối Khoa CNTT, Trường CĐ CNTT TP.HCM 280 7.2.2 Command 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. Tùy theo loại Connection đối tượng Command thuộc tên miền: System.Data.OleDb.OleDbCommand System.Data.SqlClient.SqlCommand Khoa CNTT, Trường CĐ CNTT TP.HCM 281 Tạo Command Cú pháp: As New ; .Connection=; .CommandText=Lệnh SQL>; Hoặc As New (); .Connection=; Khoa CNTT, Trường CĐ CNTT TP.HCM 282 Các thuộc tính Của Command 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 TableDirect: Tên của table (SQLProvider không hỗ trợ) VD: SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; cmd.CommandType = CommandType.Text; cmd.CommandText = "Select * From Khachhang"; Khoa CNTT, Trường CĐ CNTT TP.HCM 283 VD: khai báo câu lệnh SQL trong SqlCommand SqlCommand cmd = new SqlCommand("select * from Khachhang",cnn); cnn : biến connection hoặc chuỗi connection string Khoa CNTT, Trường CĐ CNTT TP.HCM VD: Khai báo sử dụng 1 StoredProcedure SqlCommand cmd = new SqlCommand; cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Sachtheogia"; 284 Parameters  Lệnh SQL trong commandText có thể sử dụng  ? (khi sử dụng Access)  @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.  Tùy theo Command Parameter sẽ khai báo khác nhau Khoa CNTT, Trường CĐ CNTT TP.HCM 285 Access Khoa CNTT, Trường CĐ CNTT TP.HCM OleDbParameter = new OleDbParameter(); OleDbParameter = new OleDbParameter (); OleDbParameter = new OleDbParameter (,); 286 Các thuộc tính cần chú ý: 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ề OleDbType / SqlDbType: Kiểu dữ liệu của tham số. ParameterName: Tên tham số Value: Giá trị tham số Khoa CNTT, Trường CĐ CNTT TP.HCM 287 VD: Khi sử dụng OleDbCommand cmd.CommandText="Select * From KhachHang Where MaKH=?"; OleDbParameter Par = new OleDbParameter(); Par = cmd.CreateParameter(); Par.Value="KH01"; cmd.Parameters.Add(Par); VD: Khi sử dụng SqlDbCommand cmd.CommandText="Select * From KhachHang Where MaKH=@MaKH"; SqlParameter Par = new SqlParameter(); Par = cmd.CreateParameter(); Par.ParameterName="@MaKH"; Par.Value="KH01"; cmd.Parameters.Add(Par); Khoa CNTT, Trường CĐ CNTT TP.HCM 288 Đưa tham số vào tập hợp Parameters VD: Khi sử dụng OleDbCommand Khoa CNTT, Trường CĐ CNTT TP.HCM cmd.CommandText= "Select * From BangDiem Where Masv=? And MaMH=?"; OleDbParameter Par1 = new OleDbParameter(); cmd.CreateParameters.Add("Sinhvien",OleDbType.Char,4); Par1.Value="SV01"; OleDbParameter Par2 = new OleDbParameter(); cmd.CreateParameters.Add("Monhoc",OleDbType.Char,4); Par2.Value="MH01"; 289 VD: Khi sử dụng SqlDbCommand Khoa CNTT, Trường CĐ CNTT TP.HCM cmd.CommandText="Select * From BangDiem Where Masv=@MaSV and MaMH = @MaMH "; SqlParameter Par1 = new SqlParameter(); Par1 = cmd.Parameters.Add("@MaSV",SqlType.Char,4); Par1.Value="SV01"; SqlParameter Par2 = new SqlParameter(); cmd.CreateParameters.Add("@MaMH",SqlType.Char,4); Par2.Value="MH01"; 290 Tạo tham số và đưa vào tập hợp Parameters 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 đó. Khoa CNTT, Trường CĐ CNTT TP.HCM 291 cmd.CommandText="spKetQuaThi"; cmd.CommandType=CommandType.StoredProcedure; OleDbParameter ts3 = new OleDbParameter(); ts3.Direction=ParameterDirection.ReturnValue; ts3.OleDbType=OleDb.OleDbType.Int; cmd.parameters.Add(ts3); OleDbParameter ts1 = new OleDbParameter(); cmd.Parameters.Add("@MaSV",OleDbType.Char,4); ts1.Value="SV01"; OleDbParameter ts2 = new OleDbParameter(); cmd.Parameters.Add("@MAMH",OleDbType.Char,4); ts2.Value="MH01"; Khoa CNTT, Trường CĐ CNTT TP.HCM 292 CREATE PROC SpKetQuaThi ( @MaSV varchar(2), @MaMH varchar(2), @DiemThi int output ) AS Select @DiemThi=DiemThi from SVMH where MaSV=@MaSV & MaMH = @MaMH; Khoa CNTT, Trường CĐ CNTT TP.HCM 293 SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; //bien connection; cmd.CommandText = "SVMH"; cmd.CommandType = CommandType.StoredProcedure; SqlParameter ts1 = new SqlParameter("@MaSV",SqlDbType.VarChar,4); SqlParameter ts2 = new SqlParameter("@MaMH",SqlDbType.VarChar,4); ts1.Value = "SV01"; ts2.Value = "MH01"; cmd.Parameters.Add(ts1); cmd.Parameters.Add(ts2); SqlParameter ts3 = new SqlParameter("@DiemThi",SqlDbType.Int); ts3.Direction = ParameterDirection.Output ; cmd.Parameters.Add(ts3); cmd.ExecuteNonQuery(); Label1.Text = cmd.Parameters["@DiemThi"].Value.ToString(); Khoa CNTT, Trường CĐ CNTT TP.HCM 294 Thực hiện Command:  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) SqlDataReader ; = .ExecuteReader(); VD: Khoa CNTT, Trường CĐ CNTT TP.HCM SqlDataReader dr; dr = cmd.ExecuteReader; while (dr.Read()) { Label1.Text += dr["MaNXB"] + ", " + dr["TenNXB"] + ""; } 295 Thực hiện Command:  Phương thức ExcuteNoneQuery: Dùng thực thi các phát biểu T-Sql như: Insert, Update, Delete, Create, Phương thức này trả về số dòng dữ liệu chiệu tác động, ngược lại trả về -1. VD : cmd.ExcuteNonQuery()  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, thường được dùng để thực thi các câu lệnh SQL như Count, Sum, Max, Min, AVG, Khoa CNTT, Trường CĐ CNTT TP.HCM 296 try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); 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!"); } Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1: Sử dụng Command với câu lệnh Select 297 try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); 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(); } catch (Exception) { response.write("Thất bại!"); } Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete 298 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; cmd.CommandText = "INSERT INTO CHUDE VALUES(@TENCHUDE)"; SqlParameter parTenLinhVuc = new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50); cmd.CommandType = CommandType.Text; cmd.Parameters.Add(parTenLinhVuc); parTenLinhVuc.Value = TextBox1.Text; cnn.Open(); cmd.ExecuteNonQuery(); cnn.Close(); response.write("Thành công!"); } catch (Exception) { response.write("Thất bại!"); } 299 7.2.3 DataReader 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, Tùy theo loại Connection mà DataReader thuộc tên miền: System.Data.OleDb.OleDbDataReader System.Data.SqlClient.SqlDataReader Khoa CNTT, Trường CĐ CNTT TP.HCM 300 Các thuộc tính  FieldCout: Số cột trên dòng hiện hành của DataReader  IsClosed : Cho biết dataReader đã đóng  Item: giá 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. Khoa CNTT, Trường CĐ CNTT TP.HCM 301 Các phương thức  Close: Đóng DataReader  GetFieldType: Trả về kiểu dữ liệu của tham số truyền vào.  GetName: Trả về tên của cột truyền vào  GetValue: Trả về trị của cột truyền vào  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. 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 Khoa CNTT, Trường CĐ CNTT TP.HCM 302 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1:DataReader với lệnh Insert,Update,Delete +Tham số try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); 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() + " "; } dr.Close(); response.write(list.ToString()); cnn.Close(); } catch (Exception) { response.write("Thất bại!"); } 303 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 2: DataReader + gọi procedure (VD: Getnhaxuatban) try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); 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!"); } 304 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 2: DataReader + gọi procedure có tham số Create Procedure GetchudeByMaCD @Machude char(15) AS Begin Select * From Chude Where MaCD=@Machude End 305 Khoa CNTT, Trường CĐ CNTT TP.HCM try { SqlConnection cnn = new SqlConnection("Data Source=(local);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()) { list = list + dr["Tenchude"].ToString(); } dr.Close(); response.write(list.ToString()); cnn.Close(); } catch (Exception) { response.write("Thất bại!"); } 306 7.2.4 DataAdapter  Để 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.  DataAdapter là một bộ gồm 4 đối tượng:  SelectCommand: Cho phép lấy thông tin từ nguồn.  InsertCommand: Cho phép thêm dữ liệu vào bảng trong nguồn.  UpdateCommand: Cho phép điều chỉnh dữ liệu của bảng trong nguồn.  DeleteCommand: Cho phép xóa dữ liệu của bảng trong nguồn. Khoa CNTT, Trường CĐ CNTT TP.HCM 307  Tạo DataAdapter Cú pháp: DataAdapter = New DataAdapter(,) Khoa CNTT, Trường CĐ CNTT TP.HCM 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 308 Khoa CNTT, Trường CĐ CNTT TP.HCM  Các thuộc tính của DataAdapter  DeleteCommand: Đối tượng Command chứa nội dung lệnh hủy các mẫu tin trên nguồn dữ liệu.  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.  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.  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. 309 Khoa CNTT, Trường CĐ CNTT TP.HCM  Các chức năng của DataAdapter  Lấy dữ liệu từ nguồn: - DataTable: Fill() - DataSet: 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(,) 310 Khoa CNTT, Trường CĐ CNTT TP.HCM  Phương thức trả về số mẫu tin lấy được Dataset DS as New Dataset() Integer so; so= DA.Fill(DS, “Sinhvien”)  Để cập nhật dữ liệu về nguồn Update(): Cập nhật các dòng (Các đối tượng DataRow) vào nguồn dữ liệu. Update(): Cập nhật các thay đổi trên tất cả các bảng của Dataset vào nguồn dữ liệu. Update(): Cập nhật tất cả các thay đổi trên DataTable vào nguồn dữ liệu. Update(,) Cập nhật các thay đổi trên bảng trong Dataset vào nguồn. 311 7.2.5 Dataset  Dataset là một mô hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu của ứng dụng.  Dataset chứa các bảng (DataTable), các quanhệ (DataRelation) và các ràng buộc (constraint)  Dataset thuộc tên miền: System.Data.Dataset.  Khai báo New System.Data.Dataset() Hoặc New System.Data.Dataset() Khoa CNTT, Trường CĐ CNTT TP.HCM 312 Khoa CNTT, Trường CĐ CNTT TP.HCM  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 . . . Tables.Add() Một bảng mới tạo ra theo đúng Ghi chú: Tên bảng có phân biệt chữ in, thường Xóa bảng ra khỏi Dataset Tables.Remove() Xóa bảng ra khỏi tập hợp Table. 313 Khoa CNTT, Trường CĐ CNTT TP.HCM Kiểm tra bảng có thuộc về Dataset Tables.Contains() Lấy chỉ số của bảng Tables.IndexOf() Lấy số bảng trong Dataset Tables.Count Lấy ra một bảng trong Dataset Tables() Để cập nhật các thay đổi trên Dataset AcceptChanges() 314 Khoa CNTT, Trường CĐ CNTT TP.HCM Để hủy các thay đổi trên Dataset RejectChanges() Để xóa bỏ mọi dữ liệu trên dataSet Clear() Để tạo một bản sao của Dataset Clone() Để xóa bỏ Dataset Dispone() Giải phóng mọi tài nguyên trên vùng nhớ Dataset đang sử dụng. Tạo quan hệ giữa hai bảng trong Dataset. Relations.Add(, ) Xóa quan hệ giữa hai bảng trong Dataset. Relations.Remove() 315 7.2.6 DataTable 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: New DataTable(); New DataTable(); DataTable được hình thành từ DataColumn và DataRow. Khoa CNTT, Trường CĐ CNTT TP.HCM 316 Khoa CNTT, Trường CĐ CNTT TP.HCM try { SqlConnection cnn = new SqlConnection("Data Source=(local);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]; //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!"); } Ví dụ 1: DataAdapter + update dữ liệu 317 Khoa CNTT, Trường CĐ CNTT TP.HCM try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); 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]; } catch (Exception) { response.write("Thất bại!"); } Ví dụ 2: DataAdapter + Procedure(GetNXB) 318 Khoa CNTT, Trường CĐ CNTT TP.HCM try { SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("Getchude", cnn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter parMACD = new SqlParameter("@MACD", SqlDbType.NChar, 10); 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]; cnn.Close(); } catch (Exception) { response.write("Thất bại!"); } Ví dụ 3: DataAdapter + Procedure tham số (Getchude) 319 Khoa CNTT, Trường CĐ CNTT TP.HCM try { SqlConnection cnn = new SqlConnection("Data Source=(local);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!"); } Ví dụ 4: DataAdapter + Đối số là command 320 7.3. Xây Dựng Lớp Xử Lý Dữ Liệu Khoa CNTT, Trường CĐ CNTT TP.HCM  Để 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ý.  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  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.  Thực hiện:  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ã) <add name="KetnoiCSDL" connectionString="Data Source =(local); Initial Catalog=QLBansach;Integrated Security=True“ providerName="System.Data.SqlClient" /> 321 Khoa CNTT, Trường CĐ CNTT TP.HCM  Tạo mới lớp XLDL.cs: Thêm mới 1 Item Tên lớp: XLDL.cs Sẽ lưu lớp này trong thư mục App_Code 322 Khoa CNTT, Trường CĐ CNTT TP.HCM 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(); 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; } } . . . 323 Khoa CNTT, Trường CĐ CNTT TP.HCM . . . public static void thuchienlenh(string LenhSQL) { using (SqlConnection cnn = new SqlConnection(StrCnn)) { cnn.Open(); SqlCommand bolenh = new SqlCommand(LenhSQL, cnn); bolenh.ExecuteNonQuery(); cnn.Close(); } } } 324 Chương 8 Công Nghệ Và Dịch Vụ Web Khoa CNTT,Trường CĐ CNTT TP.HCM 8.1. Dịch vụ web – Webservice 8.2 Công nghệ web 2 – Ajax 325 8.1. Webservice – nội dung Khoa CNTT,Trường CĐ CNTT TP.HCM  GIỚI THIỆU CÁC ỨNG DỤNG PHÂN TÁN  KIẾN TRÚC HƯỚNG DỊCH VỤ WEB SERVICE & LẬP TRÌNH WEB SERVICE 326 8.1.1 CÁC ỨNG DỤNG PHÂN TÁN Khoa CNTT Trường CĐ CNTT TP.HCM Máy tính Máy tính Dữ liệu Ứng dụng phân tán Dữ liệu 327 8.1.1 CÁC ỨNG DỤNG PHÂN TÁN Khoa CNTT Trường CĐ CNTT TP.HCM  Xem thông tin thời tiết  Thông tin ngoại tệ  Dịch tự động  Kiểm tra thông tin thẻ  Xem thông tin sân bay  Đặt phòng khách sạn  . 328 8.1.2 VẤN ĐỀ KHI THIẾT KẾ HỆ PHÂN TÁN Khoa CNTT Trường CĐ CNTT TP.HCM Internet Firewall Firewall Firewall Provider C Web Service Client 329 8.1.3 WEB SERVICE Khoa CNTT Trường CĐ CNTT TP.HCM WEB SERVICE LÀ GÌ?  KIẾN TRÚC WEB SERVICE  XÂY DỰNG WEB SERVICE  SỬ DỤNG WEB SERVICE 330 8.1.3.1 ĐỊNH NGHĨA Khoa CNTT Trường CĐ CNTT TP.HCM • Là một tập các phương thức được gọi từ xa thông qua một địa chỉ URL do một tổ chức, cá nhân cung cấp. • Giao tiếp theo định dạng chuẩn XML • Được sử dụng để tạo các ứng dụng phân tán. 331 8.1.3.2 ĐẶC ĐIỂM Khoa CNTT Trường CĐ CNTT TP.HCM 1. Không phụ thuộc vào ngôn ngữ lập trình 2. Được truy cập từ bất cứ ứng dụng nào 3. Hỗ trợ thao tác giữa các thành phần không đồng nhất 4. Chi phí phát triển thấp 5. Dễ bảo trì 332 8.1.3.3 KIẾN TRÚC WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM Service Consumer Publish Find Bind Service Provider Service Broker 333 8.1.3.4 XÂY DỰNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Tạo mới 1 webservice trong VS2010 334 Ví dụ ứng dụng : cộng 2 số nguyên Khoa CNTT Trường CĐ CNTT TP.HCM  Đặt tên là file là cong2so.asmx [WebService(Namespace = "")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Cong2So : System.Web.Services.WebService { public Cong2So () { } [WebMethod] public int cong(int a, int b) { return a + b; } }  Trong file Conghaiso.cs, cài đặt phương thức cộng: 335 8.1.3.4 KIỂM TRA WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Chạy file cong2so.asmx để kiểm tra phương thức webservice vừa tạo 336 8.1.3.4 Thử nghiệm Khoa CNTT Trường CĐ CNTT TP.HCM  Kết quả : 337 8.1.3.4 ngôn ngữ WSDL Khoa CNTT Trường CĐ CNTT TP.HCM  Trang webservice được mô tả bằng ngôn ngữ WSDL (Web Service Description Languague) 338 8.1.3.5 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Sử dụng webservice trong ASP.NET protected void Button1_Click(object sender, EventArgs e) { CongHaiSo c2s = new CongHaiSo(); int a = int.Parse(TextBox1.Text); int b = int.Parse(TextBox2.Text); Label1.Text = c2s.Cong2So(a, b).ToString(); }  Kết quả : 339 8.1.3.5 SỬ DỤNG WEBSERVICE CÓ SẴN Khoa CNTT Trường CĐ CNTT TP.HCM  Bước 1 : Add Web Reference 340 8.1.3.5 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Bước 2 : Nhập thông tin đường dẫn 341 8.1.3.4 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM 342 8.1.3.5 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Bước 3 : Thiết kế giao diện 343 8.1.3.4 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Bước 4: Xử lý code : 344 8.1.3.5 SỬ DỤNG WEBSERVICE Khoa CNTT Trường CĐ CNTT TP.HCM  Kết quả được lấy ngày 10/11, lu

Các file đính kèm theo tài liệu này:

  • pdf2_laptrinhweb_8621.pdf