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...
441 trang |
Chia sẻ: honghanh66 | Lượt xem: 1472 | Lượt tải: 2
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 WebsiteNew/ Virtual Directory
Trên Windows 2000/XP
Khoa CNTT,Trường CĐ CNTT TP.HCM
53 OK
Click phải: Default WebsiteAdd 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 itemchọ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 ProjectAdd ASP.NET FolderTheme
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:
- 2_laptrinhweb_8621.pdf