Bài giảng Lập trình Website - Dương Thành Phết với mục tiêu phát triển được các ứng dụng Web trên nền tảng công nghệ ASP.Net bằng cách sử dụng phần mềm MS Visual Studio 2005 với ngôn ngữ lập trình C#; quản trị, bảo trì và nâng cấp hệ thống website của các tổ chức, doanh nghiệp, cá nhân;...
Trường Cao Đẳng CNTT TP.HCM Khoa công nghệ thông tin Mục tiêu Phát triển ứng dụng Web tảng công nghệ ASP.Net cách sử dụng phần mềm MS Visual Studio 2005 với ngôn ngữ lập trình C# Tổng hợp với kiến thức mơn chuyên ngành để xây dựng ứng dụng ứng dụng web thương mại điện tử, mạng thông tin lớn, website tổ chức, doanh nghiệp hoạt động chuyên nghiệp môi trường Internet Quản trị, bảo trì nâng cấp hệ thống website tổ chức, doanh nghiệp, cá nhân Đáp ứng đủ kiến thức tảng để nghiên cứu công nghệ, giải pháp lĩnh vực web … 9Thực tốt đồ án môn học, thực tập tốt nghiệp, luận văn tốt nghiệp theo hướng Web LẬP TRÌNH WEBSITE Giảng Viên: Dương Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net Tel: 0918158670 – 08.3.7900261 Lịch tiếp SV văn phòng khoa: Sỏng th (9h00 ẻ 11h30) â Dng Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Điều kiện Trong trình học tập phải thành lập làm việc nhóm để thực Serminar, Project nên bạn đạt mục tiêu kỹ như: Phát huy tốt phương pháp học tập tích cực chủ động Làm việc theo mục tiêu, theo kế hoạch Trình bày báo cáo đề tài theo qui định Tư duy, phân tích định giải vấn đề Mở rộng nâng cao kiến thức môn học, ứng dụng vào thực tiễn Sinh viên học đạt học phần sau Thiết kế web (HTML,Css,JavaScript , Dreamweaver ) Cơ sở liệu & Hệ quản trị sở liệu SQLServer Ngơn ngữ lập trình C# Đồ họa ứng dụng Học phần học song hành Phân tích thiết kế hệ thống thơng tin © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Thời lượng Khoa CNTT,Trường CĐ CNTT TP.HCM Đánh giá kết học tập Thời gian: Tín Cụ thể Tổng số tiết: 90 tiết Lý thuyết: 45 tiết tiết / tuần x 15 tuần Thực hành: 45 tiết tiết / tuần x tuần Tham gia học tập lớp (đầy đủ, chuẩn bị tốt, tích cực thảo luận phát biểu, …): 10% Điểm thực hành: 20% thực tập lớn đánh giá vấn đáp(Đủ điều kiện trình học thực hành) Kiểm tra kỳ : 10% (trắc nghiệm) + Báo cáo tậ lớn Thực Seminar: Cộng điểm Kiểm tra cuối kỳ : 50% (Trắc nghiệm + tự luận, thời gian 90’, khơng sử dụng tài liệu) © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Nhiệm vụ sinh viên Phần mềm thực hành Xem giảng tài liệu tham khảo trước buổi lên lớp Tích cực tham gia phát biểu, đóng góp ý kiến xây dựng Chia nhóm để làm tập báo cáo giảng viên giao Tự giác tìm tài liệu, nghiên cứu thảo luận nhóm nhà Nghiêm túc làm tất tập thực hành Phần mềm để lập trình ứng dụng ¾ Microsoft SQLServer 2005 /2008 ¾ Microsoft Visual Net 2005/2008 với ngôn ngữ C# Phần mềm hỗ trợ thực tập lớn ¾ Adobe Photoshop ắ Macromedia Flash â Dng Thnh Pht-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM NỘI DỤNG TÓM TẮT Tài liệu học tập tham khảo ¾ Chương 1: Tổng Quan Về ASP.Net ¾ Chương 2: Các Đối Tượng Trong ASP.Net ¾ Chương 3: Các Điều Khiển WebServer ¾ Chương 4: Các điều khiển kiểm tra liệu ¾ Chương 5: Các Điều Khiển Dữ Liệu ¾ Chương 6: Lập Trình Web Với ADO.Net ¾ Chương 7: User Controls & Master Pages ¾ Chương 8: Cơng nghệ dịch vụ web ¾ Chương 9: Bảo mật quản trị website [1] Dương Thành Phết, Bài giảng Lập trình ứng dụng Web ASP.Net với C#, Khoa công nghệ thông tin, Trường cao đẳng CNTT TP.HCM (2010) [2] Dương Thành Phết, Bài tập thực hành Lập trình ứng dụng Web ASP.Net với C#, Khoa công nghệ thông tin, Trường cao đẳng CNTT TP.HCM (2010) -[3] Mesbah Ahmed , Chris Garrett , Jeremy Faircloth, Chris Payne , Wei Meng Lee , Jonothon Ortiz (2002), ASP.NET Web Developer’s Guide, Syngress [4] Microsoft Press, Build A Website Now with Visual Web Developer 2005 Express Edition, 2006 10 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Hiểu biết khái niệm tổng quan liên quan cơng nghệ lập trình web động quản lý ứng dụng thông qua đối tượng ASP.Net [Ch1,2] Khoa CNTT,Trường CĐ CNTT TP.HCM Điểm đặc biệt áp dụng kết nối ứng dụng với sở liệu để khai thác tương tác với người dùng, xây dựng trang quản trị, giỏ hàng thương mại điện tử sử dụng công nghệ ADO.Net [Ch7] Sử dụng thành thạo công cụ MS Visual 2005 để thiết kế website gồm điều khiển trình chủ, điều khiển kiểm tra liệu, điều khiển liên kết liệu điều khiển đặc biệt khác Tận dụng tính hữu dụng cơng cụ để xây dựng nhóm điều khiển dùng chung (User control) thiết kế bố cục webssite thông qua Masterpage [Ch3,4,5,6] Cuối lĩnh hội kiến thức liên quan đến công nghệ web như: Ajax, Webservice, vấn đề bảo mật việc Upload đưa website lên webserver để vận hành [Ch8,9] 11 12 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Chương Tổng Quan Về ASP.Net Chương Các Đối Tượng Trong ASP.Net 1.1 Giới thiệu ASP.Net và Net Framework 2.1 Đối tượng Response Và Request 2.2 Đối tượng Application Và Session 2.3 Đối tượng Server Và Cookies 2.4 Tập tin Global.asax Và Web.config 1.2 Tạo ứng dụng Web với Microsoft Visual 2005 1.3 Các thành phần giao diện VS Net 1.4 Triển khai ứng dụng web 13 14 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Chương Các Điều Khiển Kiểm Tra Dữ Liệu Chương Các Điều Khiển WebServer 3.1 Tổng quan ASP.Net Server Control 4.1 Giới thiệu chung 4.2 Các Điều khiển kiểm tra liệu 3.2 HTML Control 3.3 WebSever Control 3.4 Các điều khiển khác 3.5 Đối tượng ViewState 15 16 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Chương 06 Thiết kế Layout Web Chương Các Điều Khiển Liên Kết CSDL 5.1 Điều khiển kết nối sở dữ liệu 6.1 Web User controls 6.2 Master Pages 6.3 Themes Và Skin 6.4 Site Navigation Controls 5.2 Điều khiển liên kết sở dữ liệu 17 18 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Chương Lập Trình Web Với ADO.Net Chương Công Nghệ Và Dịch Vụ Web 7.1 Tổng quan ADO.Net 8.1 Công nghệ web – Ajax 8.2 Dịch vụ web - Webservice 7.2 Các đối tượng ADO.Net 7.3 Xây dựng lớp xử lý liệu 7.4 Xử lý giỏ hàng cho website thương mại điện tử 19 20 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM LỊCH TRÌNH DẠY & HỌC Chương Bảo Mật & Quản Trị Website 9.1 Bảo mật Website 9.2 Quản trị Website 21 22 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Sản phẩm học tập 23 24 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Sản phẩm học tập Chương Tổng Quan Về ASP.Net 1.1 Giới thiệu ASP.Net 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 VS Net 1.4 Triển khai ứng dụng web 25 26 © Dương Thành Phết-www.thayphet.net Trung Tâm CEE © Dương Thành Phết-www.thayphet.net 1.1 Giới thiệu ASP.Net và Net Framework Khoa CNTT,Trường CĐ CNTT TP.HCM 1.1.1 Tìm hiểu ASP.Net ¾Cuối thập niên 90, ASP (Active Server Page) nhiều lập trình viên lựa chọn để xây dựng phát triển ứng dụng web động máy chủ hệ điều hành Windows 1.1.1 Tìm hiểu ASP.Net 1.1.2 Những ưu điểm ASP.Net ¾ASP thể ưu điểm với mơ hình lập trình thủ tục đơn giản, sử dụng hiệu đối tượng: ADO (ActiveX Data Object) - Xử lý liệu, FSO (File System Object) Làm việc với hệ thống tập tin… ASP hỗ trợ nhiều ngơn ngữ: VBScript, JavaScript Ỵ Được u thích thời gian dài 1.1.3 Q trình xử lý tập tin Aspx 1.1.4 Tìm hiểu Net Phatform Net Framework 27 28 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM ¾ ASP.Net kỹ thuật lập trình phát triển ứng dụng web phía Server dựa tảng Microsoft Net Framework ¾ Tuy nhiên, ASP tồn đọng số khó khăn như: Code ASP HTML lẫn lộn, viết code khó khăn, Hạn chế khả sử dụng lại code Hạn chế tốc độ, q trình Postback khó khăn, … ¾ Mã lệnh phía server biên dịch thi hành Web Server kết chuyển sang HTML/ JavaScript/ CSS trả cho Client ¾ Năm 2002, Microsoft giới thiệu kỹ thuật lập trình Web ASP.Net ¾Tất xử lý lệnh ASP, ASP.Net thực Server đó, gọi kỹ thuật lập trình phía server Triển khai không biên dịch dễ code ¾ Với ASP.Net, khơng khơng cần phải biết tag HTML, thiết kế web, mà hỗ trợ mạnh lập trình hướng đối tượng trình xây dựng phát triển ứng dụng Web 29 30 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM 1.1.2 Những ưu điểm ASP.Net ¾ASP.Net cho phép lựa chọn ngơn ngữ lập trình : Visual Basic.Net, J#, C#,… ¾ASP.Net hỗ trợ mạnh mẽ thư viện phong phú đa dạng Net Framework, làm việc với XML, Web Service, truy cập sở liệu qua ADO.Net, … ¾Trang ASP.Net biên dịch thành tập tin DLL mà Server thi hành nhanh chóng hiệu Yếu tố bước nhảy vọt đáng kể so với kỹ thuật thông dịch ASP ¾ASPX ASP hoạt động ứng dụng ¾ASP.Net sử dụng phong cách lập trình Code behide(Tách code riêng, giao diện riêng) Dễ đọc, dễ quản lý bảo trì ¾Kiến trúc lập trình giống ứng dụng Windows 31 32 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 1.1.3 Quá trình xử lý tập tin Aspx Khi Web server nhận yêu cầu từ phía client, tìm kiếm tập tin u cầu thơng qua chuỗi URL gởi về, sau đó, tiến hành xử lý theo sơ đồ sau ¾Hỗ trợ quản lý trạng thái control ¾Tự động phát sinh mã HTML cho Server control tương ứng với 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 tồn cục Global.aspx có nhiều kiện Quản lý session nhiều Server, không cần Cookies 33 34 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 1.1.4 Tìm hiểu Net Phatform Net Framework Net Phatform Bao gồm Net Framework công cụ dùng để xây dựng, phát triển ứng dụng dịch vụ ASP.Net .Net Framework - Bộ thư viện lớp đối tượng Kiến trúc Net Framework 35 36 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Hệ Điều Hành - Operating System Với vai trò quản lý việc xây dựng thi hành ứng dụng NET Framework cung cấp lớp đối tượng (Class) để thi hành chức Tuy nhiên "hưởng ứng" hay không tùy thuộc khả HĐH Với chức đơn giản Messagebox NET Framework sử dụng hàm API Windows Chức phức tạp sử dụng COMponent yêu cầu phải cài đặt Microsoft Transaction Server (MTS) hay chức Web cần phải cài đặt Internet Information Server (IIS) Như chọn HĐH để sử dụng NET Framework quan trọng (Windows XP, 2003 Server, Vista đơn giản tiện dụng lập trình) Framework tập hợp hay thư viện lớp đối tượng hỗ trợ người lập trình xây dựng ứng dụng Microsoft Foundation Class(MFC) thư viện Visual C++, Java Foundation Class(JFC) thư viện Java .NET Framework thư viện dành cho lập trình viên NET Với 5000 lớp đối tượng để gọi thực đủ loại dịch vụ từ hệ điều hành, xây dựng ứng dụ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 vỏ bọc! Nhưng khơng có Visual Studio.NET, cơng việc lập trình NET bước gian nan! 37 38 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Common Language Runtime - CLR Là thành phần "kết nối" phần khác NET Framework với hệ điều hành CLR giữ vai trò quản lý việc thi hành ứng dụng viết NET CLR thông dịch 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 sử dụng tràn lan tài nguyên hệ thống, không cho phép lệnh "nguy hiểm" thi hành Các chức thực thi thành phần bên CLR như: Class loader, Just In Time compiler, COM marshaller, Security engine,… Trong (XP.NET,2003, Vista) CLR gắn kèm với hệ điều hành Điều đảm bảo ứng dụng viết chạy mà không cần cài đặt Khoa CNTT,Trường CĐ CNTT TP.HCM Base Class Library – Thư viện lớp sở Đây thư viện lớp nhất, dùng lập trình hay thân người xây dựng NET Framework phải dùng để xây dựng lớp cao Các lớp thư viện String, Integer, … Ado.Net Xml Bộ thư viện gồm lớp dùng để xử lý liệu ADO.NET thay ADO Các lớp đối tượng XML cung cấp để bạn xử lý liệu theo định dạng mới: XML Các ví dụ cho thư viện SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,… 39 40 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM Window form Bộ thư viện Window form gồm lớp đối tượng dành cho việc xây dựng ứng dụng Windows Việc xây dựng ứng dụng loại hỗ trợ tốt từ trước tới cơng cụ ngơn ngữ lập trình Microsoft Giờ đây, ứng dụng chạy Windows làm việc với ứng dụng Web dựa vào Web service Ví dụ lớp thư viện là: Form, User Control,… Asp.Net Bộ thư viện lớp đối tượng dùng việc xây dựng ứng dụng Web Ứng dụng web xây dựng ASP.NET tận dụng toàn khả NET Framework Một "phong cách" lập trình code behind Sự xuất ASP.NET làm cân xứng trình xây dựng ứng dụng Windows Web ASP.NET cung cấp Server Control để lập trình viên bắt kiện xử lý liệu ứng dụng làm việc với ứng dụng Windows Cho phép chúng chuyển ứng dụng chạy Windows thành ứng dụng Web dễ dàng … 41 42 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM Web services Web services dịch vụ cung cấp qua Web (hay Internet) Dịch vụ coi 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 dùng để cung cấp liệu hay chức tính tốn Web service cung cấp dựa vào ASP.NET hỗ trợ từ phía HĐH Internet Information Server Ví dụ, cơng ty du lịch sử dụng hệ thống phần mềm để ghi nhận thông tin khách du lịch đăng ký tour Để thực việc đặt phòng địa điểm du lịch, cơng ty cần biết thơng tin phòng trống khách sạn Khách sạn cung cấp Web service biết thơng tin phòng trống thời điểm Dựa vào đó, phần mềm 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 Web service khác cung cấp chức đặt phòng Điểm lợi Web service không cần liên lạc với khách sạn để hỏi thơng tin phòng sau lại xác định loại phòng cần đặt, số lượng đặt bao nhiêu, lại liên lạc lại với khách sạn để đặt phòng 43 44 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Phân nhóm lớp đối tượng theo loại Namespace tên gọi nhóm lớp đối tượng phục vụ cho mục đích Chẳng hạn, lớp đối tượng xử lý liệu đặt namespace Data Các lớp đối tượng dành cho vẽ đặt namespace tên Drawing Một namespace namespace lớn Namespace lớn System 45 Lợi điểm namespace phân nhóm lớp đối tượng, giúp dễ nhận biết sử dụng Ngoài ra, namespace tránh việc lớp đối tượng có tên trùng với khơng sử dụng .NET Framework cho phép tạo lớp đối tượng namespace riêng Với 5000 tên có sẵn Namespace cho phép sử dụng tên đầy đủ để nói đến lớp đối tượng Ví dụ, dùng lớp WebControls, dùng tên tắt WebControls hay tên đầy đủ là: System.Web.UI.WebControls Hệ thống tên miền (Namespace) © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 46 Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 1.2 Tạo ứng dụng web với MS Visual 2005 Đặc điểm thư viện đối tượng NET Framework trải rộng để hỗ trợ tất ngơn ngữ lập trình NET Điều giúp người bắt đầu bận tâm việc lựa chọn ngơn ngữ lập trình cho tất ngôn ngữ mạnh ngang Cũng cách sử dụng 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 1.2.1 Khởi động MS Visual Studio Net 1.2.2 Tạo ứng dụng Web 47 48 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM 1.2.1 Khởi động MS Visual Studio Net 1.2.2 Tạo ứng dụng Web Ỵ Start Ỵ Programs Ỵ Microsoft Visual Studio 2005 Ỵ Microsoft Visual Studio 2005 Từ menu File Ỵ New Ỵ Website ỴChọn ASP.Net Website ỴChọn vị trí lưu trữ - Location (D:\Wellcom) ỴChọn ngơn ngữ lp trỡnh (C#) ẻChn Ok 49 50 â Dng Thnh Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Kết quả: Cửa sổ Solution Explorer Khoa CNTT,Trường CĐ CNTT TP.HCM Trang Default.aspx (Source) Trang Default.aspx (Design) Trang Default.aspx.cs 51 52 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 1.2.3 Bổ sung điều khiển vào trang: Chuyển sang trang code Defaulr.aspx.cs (Double click vào trang thiết kế) Nhập code cho kiện Page Load: •Chọn trang Default.aspx chế độ Design •Nhập dòng văn bản: “Chào mừng bạn đến vời ASP.Net” •Thêm điều khiển Label đặt tên : lbNgay, lbThoigian Lưu ý: Phải lưu tập tin với tùy chọn Save with Encoding… 53 54 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang Khoa CNTT,Trường CĐ CNTT TP.HCM 1.2.4 Thi hành ứng dụng : Chạy chương trình (khơng debug):Ctrl + F5 Chạy chương trình (có debug): F5 Kiểm lỗi : Menu Build Ỵ Chọn Build Web Site Chấp nhận bật chế độ debug cho Website 55 56 Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net © Dương Thành Phết-www.thayphet.net 1.3 Các thành phần giao diện MS Visual Net 1.2.5 Phân loại tập tin ASP.Net: 1.3.1 Solution Explorer Diễn giải asax ascx Khoa CNTT,Trường CĐ CNTT TP.HCM 1.3 Property Window Tập tin quản lý kiện ứng dụng (application), session, kiện có yêu cầu tới trang web 1.3.3 Toolbox 1.3.4 Document Outline Window Các điều khiển người dùng tự tạo lưu trữ với phần mở rộng ascx (UserControl) .asmx Tập tin Web Service ứng dụng ASP.Net aspx Phần mở rộng 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ấu hình ứng dụng cs Tập tin mã nguồn viết theo ngôn ngữ C# js Tập tin mã nguồn Jscript 57 58 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM 1.3.1 Solution Explorer Thêm thành phần cho ứng dụng: Click phải Add | Add New Item… Hiển thị cửa số Solution Explorer: Menu View | Solution Explorer Đây cửa số quản lý "tài ngun" có ứng dụng Thơng qua cửa sổ này, thực chức như: Tạo thư mục, chép, cắt, dán Windows Explorer Và thêm thành phần cho ứng dụng: 59 60 © Dương Thành Phết-www.thayphet.net Khoa CNTT,Trường CĐ CNTT TP.HCM ¾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 iu khin ngi dựng ắ â Dng Thnh Pht-www.thayphet.net Trang 10 Khoa CNTT,Trường CĐ CNTT TP.HCM Formview Hiển thị liệu với FormView FormView dùng để hiển thị liệu với điều khiển tùy biến cho liệu ghi Ví dụ: Trang XemthongtinNXB.aspx Trình bày liệu sử dụng Edit Template ¾Tạo FormView vào trang liên kết liệu ¾Tại cửa sổ thiết kế chọn Edit Tempalte từ cửa sổ FormView Task 241 242 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net ¾Thiết kế trình bày với Control điều khiển tương tự thiết kế DataList với điều khiển tùy biến 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 định thuộc tính AllowPaging=”true” cho điều khiển Form Với thuộc tính định dạng thuộc nhóm: Pagersettings 243 244 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Minh họa: Trong ví dụ liên kết liệu với Table NhaXuatBan đưa vào Label, điền liệu vào với thuộc tính Text cho File tương tứng, thiết đặt tiêu đề(HeaderText) Tạo phân trang trình bày phía trang Khoa CNTT Trường CĐ CNTT TP.HCM 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 245 246 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 41 Khoa CNTT Trường CĐ CNTT TP.HCM 6.1 Web User controls 6.1.1 Giới thiệu 6.1.2 Tạo sử dụng User control Khi kết hợp control để tạo thành control gọi Web user control (UC) Tạo Web user control Tạo User control: Sử dụng UC giống sử dụng thủ tục, hàm Ỵ khả tái sử dụng UC trang web Thiết kế giống thiết kế trang aspx Phần mở rộng US là: ascx Chọn: Web User Control Đặt tên: *.ascx 247 248 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM 6.2 Master Pages Sử dụng User control: 6.2.1 Giới thiệu Kéo thả UC vào trang aspx, lúc trang aspx xuất tag Master pages cho phép tạo bố cục quán trang web website (tương tự template) Nội dung thể hiển trình duyệt kết hợp trang master -master page trang aspx (hoặc ascx) content page Master page tập tin có phần mở rộng master Thao tác thiết kế: Giống trang aspx, phải bổ sung điều khiển ContentPlaceHolder 249 250 © Dương Thành Phết-www.thayphet.net Master page Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Content page Khoa CNTT Trường CĐ CNTT TP.HCM 6.2.2 Tạo trang Master Bước 1: Tạo Item Ỉ chọn icon Master Page đặt tên trang: *.master Trang kết 251 252 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 42 Khoa CNTT Trường CĐ CNTT TP.HCM 6.2.3 Sử dụng trang Master Bước 2: Thiết kế bố cục chung (có thể sử dụng User control) bổ sung ContentplaceHolder vào trang master Bước 1: Tạo trang web (.aspx) khai báo sử dụng trang master 253 254 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM 6.3 Themes Và Skin 6.3.1 Giới thiệu Bước 2: Thiết kế bổ sung nội dụng trang *.aspx (có thể kéo User control vào) Themes tập hợp khai báo thuộc tính hình thức hiển thị(màu sắc, nét chữ, ) điều khiển Dùng áp dụng chung cho tất trong ứng dụng tất ứng dụng webserver Themes tạo từ thành phần: skin, css, images Tối thiểu phải có skin Các thành phần đặt thư mục App_Themes Skin tập tin có phần mở rộng skin, chứa tag tạo server control kèm theo khai báo thuộc tính 255 256 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Có loại skin: Khoa CNTT Trường CĐ CNTT TP.HCM Tạo file skin: Default skin: Không khai báo thuộc tính skinID, mặc định ứng dụng áp dụng skin cho tất điều khiểnco1 kiểu khai báo Thêm itemỴchọn skin filđặt tên file skin Named skin: có khai báo thuộc tính skinID, muốn sử dụng phải khai báo tường minh điều khiển cụ thể Tạo file skin: Thêm item 257 258 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 43 Khoa CNTT Trường CĐ CNTT TP.HCM 6.4 Site Navigation Controls Giới thiệu Tạo Theme: Dùng để chuyển đến trang web khác thể cấu trúc logic website (sitemap) Gồm điều khiển: Menu, TreeView, SiteMapPath kết hợp với SiteMapDataSource Click phải ProjectỴAdd ASP.NET FolderỴTheme Các điều khiển thường sử dụng trang Master 259 260 Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 6.4.1 Điều khiển Menu Auto Format: Chọn mẫu định dạng Dùng thể menu cho phép người dùng chuyển đến trang web khác chọn chức 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 261 262 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM 6.4.2 Điều khiển TreeView Edit Menu Items: Thiết kế Menu Dùng thể menu dạng cho phép người dùng chuyển đến trang web khác 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ế node 263 264 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 44 Khoa CNTT Trường CĐ CNTT TP.HCM Auto Format: Chọn mẫu định dạng Edit Node: Thiết kế node 265 266 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 6.4.3 Điều khiển SiteMapPath Nút gốc Dùng thể cấu trúc logic website cho phép người dùng chuyển đến trang web khác Nút Nội dung cấu trúc Website mặc định chứa tập tin Web.sitemap Nút cháu Thao tác tạo: Tạo tập tin Web.sitemap Tạo điều khiển SitemapPath vào trang 267 268 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM 6.4.4 Điều khiển SiteMapDataSource Kết Dùng để chứa nguồn liệu lưu trữ tập tin Web.sitemap Thường sử dụng kết hợp với điều khiển Menu, TreeView Để liên kết với TreeView, Menu định thuộc tính DataSourceID điều khiển tên SiteMapDataSource 269 270 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 45 Khoa CNTT Trường CĐ CNTT TP.HCM 7.1 Tổng Quan Về ADO.Net 7.1.1 Giới thiệu Chương Lập Trình Web Form Với ADO.Net 7.1.2 Kiến trúc ADO Net 7.1.3 Minh họa tạo kết nối CSDL 7.1 Tổng quan ADO.Net 7.2 Các đối tượng ADO.Net 7.3 Xây dựng lớp xử lý liệu 7.4 Xử lý giỏ hàng cho website thương mại điện tử 271 272 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.1.1 Giới Thiệu Hầu hết ứng dụng windows hay website cần có CSDL, để lưu trữ, xử lý, tìm kiếm báo cáo… Khi liệu trở thành trung tâm ứng dụng việc cung cấp chức tới người dùng phụ thuộc vào khả thao tác liệu, vấn đề cần quan tâm là: 9Lưu liệu tập trung 9Đảm bảo toàn vẹn liệu 9Đảm bảo khả truy xuất đồng thời 9Đảm bảo thời gian hồi đáp ngắn 9Bảo mật liệu 9Trao đổi liệu hệ thống khác Vấn đề giải dựa vào khả Hệ QTCSDL .Net truy xuất DL qua ADO.NET, đặc điểm ADO.NET là: Khả làm việc với DL không kết nối: DL lưu trữ nhớ CSDL thu nhỏ (dataset), nhằm tăng tốc độ xử lý tính toán hạn chế sử dụng tài nguyên Khả xử lý iệu chuẩn XML (Có thể trao đổi hệ thống nào) 273 274 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.1.2 Kiến Trúc ADO.Net Kiến trúc ADO.NET chia làm phần chính: 9Managed Provider Component: Bao gồm đối tượng DataAdapter, DataReader,… giữ nhiệm vụ làm việc trực tiếp với liệu database, file,… 9Content Component: Bao gồm đối tượng DataSet, DataTable,… đại diện cho liệu thực cần làm việc 275 276 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 46 Khoa CNTT, Trường CĐ CNTT TP.HCM 7.1.3 Minh họa tạo kết nối CSDL DataReader: Là đối tượng giúp truy cập liệu nhanh chóng Cơ bước thực với database DataSet: Là thu nhỏ CSDL nhớ với nhiều bảng mối quan hệ 9Bước 2: Mở kết nối liệu 9Bước 1: Tạo kết nối 9Bước 3: Tạo lệnh điều khiển truy vấn SQL DataAdapter: Là đối tượng kết nối DataSet CSDL, bao gồm đối tượng Connection Command để cung cấp liệu cho DataSet cập nhật liệu từ DataSet xuống CSDL 9Bước 4: Thực thi lệnh 9Bước 5: Đóng kết nối 9Bước 6: in kết 277 278 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2 Các đối tượng ADO.Net Ví dụ: 7.2.1 Connection 7.2.2 Command 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 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 chuỗi giá trị sở liệu string result = (string)cmd.ExecuteScalar(); cnn.Close(); //đóng kết nối Response.Write(result); //in giá trị hình } } 279 280 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2.1 Connection Connection String: Khi thực kết nối cần khai báo thông tin cho Connection thông qua thuộc tính Connection String Tùy thuộc vào Data Provider: Vai trò Connection ADO.net tạo kết nối ứng dụng với CSDL Data Provider 9System.Data.Oledb : Sử dụng với Access 9System.Data.SqlCient : Sử dụng với SQLServer Ứng với tên miền: 9System.Data.Oledb.OledbConnection 9System.Data.SqlClient.SqlConnection Và Data Provider khác: 9System.data.OcracleClient(Ocracle) 9MicroSoft.data.Odbc(Thông qua ODBC HĐH) 9Microsoft.Data.Sqlxml (XML Sqlserver) Nếu kết nối với CSDL Access Provider: Khai báo Data Provider Access Data Source: Tên tập tin CSDL (.mdb) User ID: Tên người dùng Password : Mật 281 282 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 47 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ: Tạo kết nối với CSDL Access Nếu kết nối với CSDL SQLServer 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ý liệu cnn.Close(); } } Provider: Khai báo Data Provider 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 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) 283 284 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Các thuộc tính Của Connection Ví dụ: Tạo kết nối với CSDL SQLServer DataBase: Tên CSDL 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) { DataSource: Tên Server Provider:Tương ứng với Provider HQTCSDL State: Tình trạng kết nối Connection: Broken: Kết nối bị ngắt kết nối String StrCnn="Data Source=.; Initial Catalog=QLbansach; User ID=sa;Password=“; SqlConnection cnn = new SqlConnection(StrCnn); Closed: Kết nối đóng Connecting: Đang kết nối cnn.Open(); //Truy xuất, xử lý liệu cnn.Close(); Executing: Kết nối thực lệnh Fetching: Kết nối truy xuất liệu } } Open: Kết nối mở 285 286 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2.2 Command Các phương thức Sau tạo kết nối CSDL, thao tác với nguồn liệu thực thông qua Command Change Databse: Thay đổi DataBase làm việc Tùy theo loại Connection đối tượng Command thuộc tên miền: Close : Đóng kết nối Dispose: Giải phóng nhớ System.Data.OleDb.OleDbCommand Open: Thực kết nối System.Data.SqlClient.SqlCommand 287 288 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 48 Khoa CNTT, Trường CĐ CNTT TP.HCM Tạo Command Các thuộc tính Của Command Cú pháp: CommandText: Lệnh SQL hay tên Procedure As New ; CommandType: Loại Command .Connection=; Text: (Mặc định): Là câu lệnh SQL .CommandText=Lệnh SQL>; StoredProcedure: Tên thủ tục Hoặc TableDirect: Tên Connectionủa table VD: As New (); SqlCommand cmd As SqlCommand = New SqlCommand(); .Connection=; cmd.Connection = cnn; cmd.CommandType = CommandType.Text; cmd.CommandText = "Select * From Khachhang" 289 290 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Parameters Lệnh SQL commandText sử dụng ? (khi sử dụng Access) @Tênbiến (khi sử dụng SQLServer) thay cho trị chưa xác định thực dùng đối tượng Parameters để truyền giá trị vào dấu ?/ @Tênbiến Tùy theo Command Parameter khai báo khác Access OleDbParameter As New OleDbParameter(); OleDbParameter As New OleDbparameter(); OleDbParameter As New OleDbParameter (,); SQLServer SqlParameter 291 292 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM As New SqlParameter(); SqlParameter As New SqlParameter(); SqlParameter As New SqlParamter(,); © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM VD: Khi sử dụng OleDbCommand Các thuộc tính cần ý: Output: Loại tham số đầu cmd.CommandText=”Select * From KhachHang Where MaKH=?”; OleDbParameter Par As OleDbParameter= cmd.CreateParameter(); Par.Value=”KH01”; cmd.Parameters.Add(Par); ReturnValue: Loại tham số nhận trị trả VD: Khi sử dụng SqlDbCommand 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 cmd.CommandText=”Select * From KhachHang Where MaKH=@MaKH”; SqlParameter Par As SqlParameter = cmd.CreateParameter(); Par.ParameterName=”@MaKH”; Par.Value=”KH01”; cmd.Parameters.Add(Par); OleDbType / SqlDbType: Kiểu liệu tham số ParameterName: Tên tham số Value: Giá trị tham số 293 294 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 49 Khoa CNTT, Trường CĐ CNTT TP.HCM VD: Khi sử dụng SqlDbCommand Đưa tham số vào tập hợp Parameters VD: Khi sử dụng OleDbCommand cmd.CommandText=”Select * From BangDiem cmd.CommandText=”Select * From BangDiem Where Masv=? And MaMH=?”; OleDbParameter Par1 As OleDbParameter= cmd.CreateParameters.Add(“Sinhvien”,OleDbType.Char,4); Par1.Value=”SV01” OleDbParameter Par2 As OleDbParameter= cmd.CreateParameters.Add(“Monhoc”,OleDbType.Char,4); Par2.Value=”MH01” Where Masv=@MaSV and MaMH = @MaMH ”; SqlDbParameter Par1 As SqlDbParameter= cmd.CreateParameters.Add(“@MaSV”,SqlType.Char,4); Par1.Value=”SV01” SqlDbParameter Par2 As SqlDbParameter= cmd.CreateParameters.Add(“@MaMH”,SqlType.Char,4); Par2.Value=”MH01”; 295 296 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM cmd.CommandText=”spKetQuaThi”; cmd.CommandType=CommandType.StoredProcedure; OleDbParameter ts3 As New OleDbParameter(); ts3.Direction=ParameterDirection.ReturnValue; ts3.OleDbType=OleDn.OleDbType.Int; cmd.parameters.Add(ts3); OleDbParameter ts1 as OleDbParameter= cmd.Parameters.Add(“@MaSV”,OleDbType.Char,4); Ts1.Value=”Sv01”; OleDbParameter ts2 as OleDbParameter= cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4); Tạo tham số đưa vào tập hợp Parameters VD: Procedure SpKetQuaThi cần tham số đầu vào: @MaSV , @MaMH trả Điểm thi Môn học sinh viên Ts1.Value=”MH01”; 297 298 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1: Sử dụng Command với câu lệnh Select Thực Command: Phương thức ExecuteReader: Trả đối tượng DataReader để đọc liệu lần dòng với phương thức Read.(DataReader đọc liệu trực tiếp từ nguồn nên phải trì kết nối đến đọc xong) 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 câu lệnh SQL cmd.CommandText = "Select Count(*) From Chude"; cmd.CommandType = CommandType.Text; //Mở kết nối lấy liệu cnn.Open(); int count = (int)cmd.ExecuteScalar(); response.write(count.ToString()); cnn.Close(); SqlDataReader As SqlDataReader; = .ExecuteReader; VD: SqlDataReader rd As SqlDataReader; rd = cmd.ExecuteReader; Phương thức ExcuteNoneQuery: Dùng thực thi phát biểu T-Sql như: Insert, Update, Delete, Create,… Phương thức ExcuteScalar: Trả từ phát biểu SQL dạng Select có cột hàng } catch (Exception) { response.write("Khơng thành cơng!“); } 299 300 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 50 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete try try { { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; SqlParameter parTenLinhVuc = new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50); cmd.CommandText = "INSERT INTO CHUDE VALUES(@TENCHUDE)"; cmd.CommandType = CommandType.Text; cmd.Parameters.Add(parTenchude); parTenLinhVuc.Value = TextBox1.Text; cnn.Open(); cmd.ExecuteNonQuery(); cnn.Close(); response.write("Thành công!“); 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!“); } 301 } catch (Exception) { response.write(“Thất bại!“); } 302 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2.3 DataReader Là đối tượng truy cập liệu trực tiếp, sử dụng trỏ phía Server trì kết nối với Server suốt trình đọc liệu, Các thuộc tính FieldCout: Số cột dòng hành DataReader IsClosed : Cho biết dataReader đóng Item:Trị cột truyền vào Tham số truyền vào tên cột số thứ tự tính từ Tùy theo loại Connection mà DataReader thuộc tên miền: System.Data.OleDb.OleDbDataReader System.Data.SqlClient.SqlDataReader 303 304 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1:DataReader với lệnh Insert,Update,Delete +Tham số try { Các phương thức Close: Đóng DataReader GetFieldType: Trả kiểu liệu tham số truyền vào GetName: Trả tên cột truyền vào GetValue: Trả trị cột truyền vào Read: Di chuyển đến dòng trả true dòng để di chuyển, ngược lại trả False Trong dataReader mở thao tác liệu nguồn liệu dataReader đóng lại lệnh Close 305 306 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 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!“); } © Dương Thành Phết-www.thayphet.net Trang 51 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 2: DataReader + gọi procedure (VD: Getnhaxuatban) try { 307 Create Procedure GetchudeByMaCD @Machude char(15) AS Begin Select * From Chude Where MaCD=@Machude End 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!“); } © Dương Thành Phết-www.thayphet.net try { 309 Ví dụ 2: DataReader + gọi procedure có tham số 308 Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 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(); 7.2.4 DataAdapter Để lấy liệu từ nguồn liệu cho ứng dụng, sử dụng đối tượng DataAdapter Đối tượng cho phép ta lấy cấu trúc liệu bảng DataAdapter gồm đối tượng: SelectCommand: Cho phép lấy thông tin từ nguồn InsertCommand: Cho phép thêm liệu vào bảng nguồn UpdateCommand: Cho phép điều chỉnh liệu bảng nguồn DeleteCommand: Cho phép xóa liệu bảng nguồn } catch (Exception) { response.write(“Thất bại!“); } © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 310 Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Tạo DataAdapter Cú pháp: DataAdapter = New DataAdapter(,) Khoa CNTT, Trường CĐ CNTT TP.HCM Các thuộc tính DataAdapter DeleteCommand: Đối tượng Command chứa nội dung lệnh hủy mẫu tin nguồn liệu InsertCommand: Đối tượng Command chứa nội dung lệnh thêm mẫu tin nguồn liệu DataAdapter thao tác với nguồn liệu qua đối tượng connection kết nối, Connection chưa mở DataAdapter tự động mở kết nối cần đóng lại SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất mẫu tin nguồn liệu UpdateCommand: Đối tượng Command chứa nội dung lệnh sửa mẫu tin nguồn liệu 311 312 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Trang 52 Khoa CNTT, Trường CĐ CNTT TP.HCM Các chức DataAdapter Phương thức trả mẫu tin lấy Dataset DS as New Dataset() Integer so; so= DA.Fill(DS,”Sinhvien”) Để cập nhật liệu nguồn Update(): Cập nhật dòng (Các đối tượng DataRow) vào nguồn liệu Update(): Cập nhật thay đổi tất bảng Dataset vào nguồn liệu Update(): Cập nhật tất thay đổi DataTable vào nguồn liệu Update(,) Cập nhật thay đổi bảng Dataset vào nguồn Lấy liệu từ nguồn: - DataTable: Fill() - DataSet: Fill() Dữ liệu lấy DataSet dạng dataTable với tên là: Table0,Table1, Table2 - Đổ liệu vào Datset cho bảng DataTable chưa có tạo mới: Fill(,) 313 314 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2.5 Dataset Dataset mơ hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu ứng dụng Dataset chứa bảng (DataTable), quanhệ (DataRelation) 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() Các phương thức Thêm bảng vào Dataset Tables.Add() Một bảng tự động tạo với tên mặc định Table1, Table2 Tables.Addd() Một bảng tạo theo Ghi chú: Tên bảng có phân biệt chữ in, thường Xóa bảng khỏi Dataset Tables.Remove() Xóa bảng khỏi tập hợp Table 315 316 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Kiểm tra bảng có thuộc Dataset Tables.Contains() Lấy số bảng Tables.IndexOf() Lấy số bảng Dataset Tables.Count Lấy bảng Dataset Tables() Để cập nhật thay đổi Dataset AcceptChanges() 317 318 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Để hủy thay đổi Dataset RejectChanges() Để xóa bỏ liệu dataSet Clear() Để tạo sau Dataset Clone() Để xóa bỏ Dataset Dispone() Giải phóng tài nguyên vùng nhớ Dataset sử dụng Tạo quan hệ hai bảng Dataset Relations.Add(, ) Xóa quan hệ hai bảng Dataset Relations.Remove() © Dương Thành Phết-www.thayphet.net Trang 53 Khoa CNTT, Trường CĐ CNTT TP.HCM Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1: DataAdapter + update liệu 7.2.6 DataTable try { Dữ liệu bảng nguồn liệu lấy đưa vào DataTable DataTable thuộc tên miền : System.Data.dataTable Cú pháp: New DataTable(); New DataTable(); DataTable hình thành từ DataColumn DataRow 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]; GridView1.DataBind(); //Không sử dụng SqlCommandBuilder khơng thể update liệu da.Update(ds); } 319 320 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Ví dụ 2: DataAdapter + Procedure(GetNXB) 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]; GridView2.DataBind();} catch (Exception) { response.write(“Thất bại!“); } 321 322 Khoa CNTT, Trường CĐ CNTT TP.HCM SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("Getchude", cnn); cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; SqlParameter parMACD = new SqlParameter("@MACD", SqlDbType.NChar, 10); parMACD.Value = "1"; cmd.Parameters.Add(parMACD); cnn.Open(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); cnn.Close(); } catch (Exception) { response.write(“Thất bại!“); } © Dương Thành Phết-www.thayphet.net Ví dụ 4: DataAdapter + Đối số command 323 Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 3: DataAdapter + Procedure tham số (Getchude) try { © Dương Thành Phết-www.thayphet.net catch (Exception) { response.write(“Thất bại!“); } Khoa CNTT, Trường CĐ CNTT TP.HCM 7.2.7 Đối Tượng Transaction 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!“); Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương } Thành Phết-www.thayphet.net Dữ liệu bảng nguồn liệu lấy đưa vào DataTable DataTable thuộc tên miền : System.Data.dataTable Cú pháp: New DataTable(); New DataTable(); DataTable hình thành từ DataColumn DataRow 324 © Dương Thành Phết-www.thayphet.net Trang 54 Khoa CNTT, Trường CĐ CNTT TP.HCM 7.3 Xây Dựng Lớp Xử Lý Dữ Liệu Để thao tác với CSDL thuận lợi Ta nên xây dựng lớp xử lý liệu đảm nhận việc kết nối CSDL thủ tục xử lý Docbang(string LenhSQL): Nhằm thực câu lệnh truy vấn SQL để trả liệu DataTable Thuchienlenh(string LenhSQL): Nhằm thực câu lệnh Insert, Update, Delete để cập nhật liệu cho CSDL Thực hiện: Tạo cấu hình chuỗi kết nối CSDL tập tin Webconfig (Có thể dùng SQLDatasource để sinh mã) Tạo lớp XLDL.cs: Thêm Item Tên lớp: XLDL.cs Sẽ lưu lớp thư mục App_Code