1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Thiết kế web (Nghề: Quản trị mạng máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Kỹ thuật Công nghệ

77 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo trình Thiết kế web
Trường học Trường CĐ nghề Kỹ thuật Công nghệ
Chuyên ngành Quản trị mạng máy tính
Thể loại Giáo trình
Định dạng
Số trang 77
Dung lượng 2,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

(NB) Nội dung giáo trình Thiết kế web cung cấp cho người học những kiến thức như: Tổng quan về www – ngôn ngữ HTML; thiết kế web tĩnh; thiết kế web động. Mời các bạn cùng tham khảo nội dung phần 2 giáo trình.

Trang 1

BÀI 3: XÂY DỰNG WEB ĐỘNG

- Cài đặt, cấu hình được IIS và ngôn ngữ lập trình Web

- Sử dụng thành thạo môi trường phát triển và lập trình web động

- Sử dụng tốt các đối tượng ASP.Net, ADO.Net, tiện ích của ngôn ngữ lập trình

- Có khả năng kết nối với cơ sở dữ liệu

- Thực hiện tốt công tác an toàn lao động và vệ sinh phân xưởng

Nội dung chính:

1.Tổng quan về ASP.Net và ADO.Net:

Mục tiêu: Giới thiệu tổng quan về công nghệ phát triển web động bằng Asp.Net

và Ado.Net, giới thiệu về nền tảng Net Framework, cách cài đặt, cấu hình máy chủ web ảo IIS Giới thiệu môi trường lập trình web – bộ Visual Studio Net

1.1 Tổng quan về ngôn ngữ ASP.Net:

1.1.1 Giới thiệu ASP.Net (Active Server Page Net):

a) Các mô hình code trong trang ASP.NET

Một trang Web bao gồm hai phần MarkUp Code và Programming code Khi duyệt một trang ta thấy phần layout của nó trên trình duyệt Phần layout được thiết

kế bởi các thẻ markup Programming code được viết cho sự điều khiển sự tương tác của người sử dụng và một số sự kiện

- MarkUp file chỉ dẫn cho trình biên dịch cách biên dịch và xử lý trang ASP.NET

- Programming code bao gồm các kỹ thuật xử lý sự kiện khác nhau

MarkUp code và Programming code có thể ở trên cùng một trang hoặc trên các trang khác nhau Dựa vào đó người ta chia Web Page ra làm hai dạng:

- Single File Page: chứa cả MarkUp code và Programming code trên cùng một trang

- Code Behind Page: IDE sẽ tạo ra hai file MarkUp (có phần mở rộng là aspx chứa markup code) và Class (phần mở rộng là aspx.cs, aspx.vb, chứa logic lập trình Markup file chứa tham chiếu đến Code Behind file nên 2 file này được liên kết với nhau

File Code Behind tự động tạo Partial Class Từ khóa Partial chỉ định lớp này

không chứa đầy đủ các thành phần mà nó được kế thừa từ lớp Page

Trang 2

Lớp Page: dẫn xuất từ lớp Page thuộc namespace "System.Web.UI“, được kế thừa các thuộc tính, các phương thức và các sự kiện của lớp này

ID Chỉ định hoặc truy xuất định danh đối tượng của lớp Page

Title Chỉ định hoặc truy xuất tiêu đề của trang

Server Truy xuất đến thể hiện của lớp Server

Session Truy xuất đến thể hiện của lớp Session đối với Session hiện tại

Controls Truy xuất đến thể hiện của lớp ControlCollection cho tất cả các

điều khiển Server Controls

ErrorPage Chỉ định hoặc truy xuất đến trang Error mà trang này được điều hướng

đến khi có lỗi xảy ra

HasControls Kiểm tra xem có tồn tại các controls trên trang hay không

LoadControl Load một thể hiện của lớp Control

GetValidators Trả về tập các đối tượng Validator liên quan đến nhóm

Validation chỉ định

MapPath Trả về đường dẫn ảo ánh xạ đến

Trong đó cấu trúc cơ bản của file aspx cho cả hai dạng bao gồm các chỉ dẫn trang, script code và user interface code

b) Các chỉ dẫn (Directives)

Các chỉ dẫn là các câu lệnh mô tả ứng dụng ASP.NET được biên dịch như thế nào Các chỉ dẫn được bao trong cặp <%%> và thuộc file aspx Các chỉ dẫn tốt nhất nên khai báo ở vị trí đầu tiên trên trang Sau đây là một số chỉ dẫn:

@Page Định nghĩa các thuộc tính cho Web Page

@Import Import một tên miền cho trang

@Assembly Liên kết một Assembly với trang hoặc với một điều khiển

@Master Định nghĩa các thuộc tính của Master

@Reference Liên kết một trang, một điều khiển tới trang hiện tại

@Register Khai báo một điều khiển của người dùng

- Chỉ dẫn @Page: Page là chỉ dẫn các thuộc tính của trang Mỗi thuộc tính

Trang 3

được gán một giá trị, theo đó mà trang ASP.NET sẽ được biên dịch

Language Là thuộc tính chỉ định ngôn ngữ

cho quá trình biên dịch code

<%@ Page Language="VB"%>

CodeFile Là thuộc tính chỉ định đường

khi có lỗi xảy ra trên trang <%@ Page

Language=“C#"

ErrorPage=

“ErrorPage.aspx"

Title=“Ví dụ“ AutoEventWireUp

Tổng quát: Ta có cách khai báo chỉ định @Page:

<%@ Page <attribute>=“<value>” %>

- Chỉ dẫn @Import: khai báo thêm các không gian tên miền vào Page Khi

khai báo chỉ dẫn @Import, tất cả các Class của không gian tên sẽ sẵn sàng trong khi lập trình

Ðể khai báo chỉ dẫn @Import, bạn có thể sử dụng cú pháp sau:

System System.Collection.Specialized System.IO

c) Điều khiển các sự kiện trong Web pages:

Mỗi một Web page có một vòng đời, mỗi bước trong vòng đời xuất hiện một sự kiện Các sự kiện được xử lý tự động bởi các Event Handler tương ứng Sau đây là một

số sự kiện tự động điều khiển trong Webpages: Init -> Load ->PreRender->UnLoad

Trang 4

- Init: Là sự kiện đầu tiên trong vòng đời của trang web T hường dùng khởi tạo tất cả các điều khiển trong trang web Init cũng còn được dùng đối với các biến cần được khai báo và khởi tạo trước khi xử lý Web page

- Load: Là sự kiện xảy ra sau sự kiện Init Thực hiện bất cứ khi nào Web Page được Request Khi một người dùng Request một trang Web thì các biến và các điều khiển trong trang được khởi tạo và sau đó trang đó được load lên

- PreRender: Là sự kiện được thực hiện trước khi trang được submit (đệ trình) cho người sử dụng

- UnLoad: Là sự kiện xảy ra sau khi trang được submit cho người dùng

Chú ý: Trong tiến trình xử lý các sự kiện của trang liên quan đến một khái niệm

đó là PostBack

- PostBack là thông tin được submit từ Browse đến Server Khi người dùng Submit thông tin bằng cách click vào một nút lệnh hoặc chọn một item trên lưới thì Browse sẽ chuyển thông tin này đến server

Khi người dùng tương tác với Web Page bằng cách phát sinh một sự kiện thì trang đó được gửi quay trở lại Server Server xử lý code hiện tại trong các event handlers và sau đó trang này được tạo lại Như vậy trang này lại trải qua một vòng đời mới với các sự kiện Init() và Load ()

- Thuộc tính IsPostBack dùng để kiểm tra Web Page được Request lần đầu tiên hay là kết quả của một PostBack Nếu trang đó được Request lần đầu tiên thì thuộc tính IsPostBack nhận giá trị false Nếu trang đó được submit quay trở lại từ Server thì thuộc tính IsPosstBack nhận giá trị True

1.1.2 Giới thiệu Net Framework:

.NET Framework là cơ sở hạ tầng cung cấp cho người dùng cách thức sử dụng đa ngôn ngữ lập trình để truy cập thông tin, file, hoặc các chương trình của họ ở mọi lúc mọi nơi trên mọi cấu hình phần cứng và thiết bị

Tâm điểm của NET Framework là CLR (Common Language Runtime) và tập phân cấp các bộ thư viện hợp nhất và ASP.NET CLR quản lý sự thực thi của đoạn

mã NET và cung cấp các dịch vụ tạo quá trình phát triển chương trình ứng dụng dễ dàng hơn Các trình biên dịch và các công cụ làm cho chức năng của thư viện thực thi runtime trở nên phong phú và hiệu quả hơn

Ngoài ra, dịch vụ Web trong NET Framework cho phép ta phát triển ứng dụng Internet hay Intranet trong hiện tại lẫn tương lai bằng bất cứ ngôn ngữ lập trình và truy cập đến hệ thống bất kỳ

Ta có thể tham khảo tất cả những thành phần cấu thành trong NET Framework như hình dưới đây, mức trên cùng là trình biên dịch Visual Basic hoặc các trình biên dịch của các ngôn ngữ khác trong bộ Visual Studio NET

Có thể sử dụng Visual Studio.NET kết hợp với môi trường phát triển (Intergrated Development Environment - IDE) để lập trình ASP.NET Visual Basic, C ++

, C # v.v

.NET Framework còn kết hợp mô hình lập trình đơn giản, dễ sử dụng với các

giao thức mở và biến đổi được của Internet

Trang 5

1.1.2 Giới thiệu môi trường lập trình

Ta có thể sử dụng Microsoft Visual Studio 20xx IDE (Integrated Development Environment ) tạo các ứng dụng web ASP.NET IDE bao gồm các tools cho việc phát triển, gỡ rối và triển khai ứng dụng

Web Page Designing: Visual Studio 20xx IDE cung cấp bộ thiết kế (Design

Editor) theo hiệu ứng “What you see is What you get”, do đó rất đơn giản để tạo

một web page layout Cung cấp khả năng keó thả các thành phần vào Web Form và sinh mã code HTML tương ứng

a) Cấu hình ứng dụng với IIS:

Internet Information Services (IIS) là một Web Server được phát triển bởi Microsoft để tạo host cho các websites trên một server đơn dùng để quảng bá và quản trị website trên Internet hoặc Intranet

Làm việc IIS với các ứng dụng ASP.NET: Các ứng dụng ASP.NET được lưu trữ trên một thư mục ảo của IIS Các bước truyền thông giữa ASP.NET và IIS như sau:

1 Browse gửi Request đến IIS

Trang 6

2 IIS nhận request, tìm kiếm file tương ứng và gửi file này đến ASP.NET Script Engine

3 Script Engine thực hiện các Server - Side Script, sinh HTML page và gửi cho IIS

4 IIS nhận và gửi cho Browse

Cấu hình IIS

- Mở IIS

- Right click lên Default Web Site chọn: New\Vitual Directory và làm theo các chỉ dẫn

- Chỉ định IIS Web Project: Chỉ định trong Location là HTTP

Xem các hình minh họa sau dùng để cấu hình cho thư mục web có tên Sieuthi

Trang 7

b) Biên dịch trang Aspx:

Các trang ASP.NET có đuôi là *.apsx Khi người sử dụng lần đầu tiên triệu gọi trang ASPX, thì IIS triệu gọi trình biên dịch dịch trang ASPX (trang Code- behind) thành tập tin Class Tiếp theo, tập tin Class này được biên dịch thành tập tin DLL Cuối cùng, trang DLL thực thi và trả về kết quả cho người sử dụng

Trong trường hợp người sử dụng triệu gọi lại trang ASPX, thì tập tin DLL sẽ được gọi và thực thi để trả kết quả về cho người sử dụng Trang ASPX sẽ chỉ biên dịch lại tập tin DLL khi chúng tìm thấy cấu trúc của nó thay đổi hoặc chúng không tìm thấy tập tin DLL tương ứng

c) Tạo ứng dụng ban đầu:

1 Khởi động Visual studio, File\ New Web site Ta thấy hộp thoại New Web Site như hình sau:

2 Trong hộp thoại New Web Site, chọn ASP.NET Web Site và ngôn ngữ Visual Basic (hoặc C#, )

3 Click File System trong hộp Location, click Browse, và sau đó chỉ định đường dẫn đến thư mục lưu trữ

4 Click OK để hoàn thành các thay đổi

Trang 8

Visual Studio nạp Visual Web Developer và tạo một Web page Mỗi một Web page chứa hai phần:

- Một Web Forms page, chứa HTML và các điều khiển để tạo giao diện người sử dụng

- file code-behind, chứa các module code, chứa program code trong Web Forms page

Tương ứng với nó là hai file được mặc định là: file Default.aspx chứa giao diện người sử dụng và file Default.aspx.vb chứa phần code cho Web page này

Ngoài web pages, web sites có thể chứa các modules (.vb files, cs files), HTML pages (.htm files), configuration information (Web.config file), global Web application information (Global.asax file),và các thành phần khác Ta có thể sử dụng Web Page Designer và Solution Explorer để chuyển đổi giữa các thành phần này một các nhanh chóng và hữu hiệu

Trong cửa sổ Web Page Designer, HTML source code cho Web page được hiển thị trên tab Source Tab Design dùng để hiển thị Web page như khi trên Web browser Khi tab Design được chọn thì một trang trắng xuất hiện đó là kết quả của phần code khởi tạo Ta có thể thiết kế thêm các điều khiển và điều chỉnh các đối tượng trên trang Ta sử dụng trang *.aspx.vb hoặc *.aspx.cs để viết mã code cho trang

d) Thêm web page:

Để thêm một trang vào web site ta thực hiện các bước sau:

1 Click vào menu Website chọn Add New Item (Hoặc trong cửa sổ Solution Explorer, right click, và chọn Add New Item) Xuất hiện cửa sổ Add New Item như hình sau:

Trang 9

Trong cửa sổ này ta thực hiện các lựa chọn

- Mục Templates: Chọn Web form

- Mục Name: Đặt tên cho trang

- Mục Language: Chọn ngôn ngữ lập trình

- Chọn: Place code in separate file mặc định là tách trang này ra làm 2 file như

đã mô tả trên Trong trường hợp không tách ta có thể bỏ lựa chọn này

Khi bỏ lựa chọn này thì HTML và các điều khiển để tạo giao diện người sử dụng cùng với code nằm trên cùng một file

1.2 Mô hình ADO.Net

Khi làm việc với NET để phát triển các ứng dụng web thì sự nỗ lực của bạn để điều khiển dữ liệu sẽ là nhỏ nhất Bởi vì, ASP.NET cung cấp các đối tượng ActiveX Data Objects cho NET (ADO.NET), một tập hợp các công nghệ truy xuất dữ liệu là một phấn của NET Framework, giúp cho việc điều khiển và làm việc với dữ liệu trở lên dễ dàng hơn

ADO.NET được thiết kế để cung cấp kiến trúc rời rạc (disconnected architecture) Có nghĩa là các ứng dụng connect tới database truy nạp dữ liệu và lưu trữ trong memory Sau đó disconnect với database và sử dụng bộ nhớ sao chép (memory copy) của dữ liệu đó Nếu như database cần phải được update với các thay đổi trên memory copy, một kết nối mới (connection) được hình thành và database được update

Bộ nhớ chính lưu trữ dữ liệu là DataSet, nơi mà chứa các bộ nhớ lưu trữ dữ liệu khác,

Trang 10

như là: Các đối tượng DataTable; ta có thể lọc và sắp xếp dữ liệu trên DataSet bằng việc sử dụng các đối tượng DataView,

Chúng ta sẽ tìm hiểu về ADO.net sâu hơn ở phần sau

2 Các đối tượng ASP.Net:

Mục tiêu: Sử dụng tốt các đối tượng ASP.Net hỗ trợ lập trình

2.1 ASP.Net Web Server Controls:

2.1.1 Giới thiệu các điều khiển web

a) Server Controls và HTML Controls

Server Controls: có nhiều khả năng hơn HTML controls và chức năng của nó

trong một số cách giống như Windows Forms controls Nhiều điều khiển server controls có cùng tên như các điều khiển Windows Forms controls và cùng cấp nhiều thuộc tính, phương thức và sự kiện giống nhau, thêm vào đó là các điều khiển như FileUpload, LoginView, và RequiredFieldValidator

HTML Controls: là một tập hợp các điều khiển giao diện người dùng trước

đây mà được hỗ trợ bởi hầu hết các trình duyệt web và phù hợp với chuẩn HTML phát triển cho việc quản lý các phần tử giao diện người dùng trên các trang web điển hình Chúng bao gồm: Button, Text Field, Checkbox và các điều khiển cơ sở hữu ích cho việc quản lý thông tin trên một trang Web mà có thể được trình bày hoàn toàn bằng mã code HTML

b) ASP.NET Web Server Controls

Khi tạo trang ASP.NET Web pages, ta có thể sử dụng các kiểu controls:

- Web server controls Controls có nhiều tính năng cài sẵn hơn HTML

server controls Web server controls không chỉ bao gồm các điều khiển như buttons and text boxes, mà còn các điều khiển cho mục địch đặc biệt như calendar, menus và tree view control Web server controls có nhiều tính năng trừu tượng hơn HTML server controls

- HTML server controls Các phần tử HTML có thêm tính năng tương tác trên

trình chủ (server) vì vậy ta có thể lập trình chúng HTML server controls trưng bày một đối tượng mà ánh xạ rất gần tới các phần tử HTML mà chúng hoàn trả

- Validation controls Controls kết hợp logic cho phép ta kiểm soát những gì

mà người dùng chèn vào các điều khiển Input như điều khiển TextBox Validation controls cho phép ta kiểm tra quy định của một trường, kiểm tra dựa vào một giá trị đặc biệt, hoặc một mẫu ký tự, kiểm tra xem một giá trị nào đó có nằm trong một phạm

vi hay không, v.v…

- User controls Controls mà được tạo như ASP.NET Web pages Ta có thể

nhúng ASP.NET user controls trên các trang ASP.NET Web pages khác Đây là cách đơn giản để tạo toolbars và các phần tử được sử dụng lại khác

- Và một số nhóm điều khiển khác như: Data, Navigation, login,…

2.1.2 Web Server controls

Các điều khiển Web Server cung cấp giao diện đồ họa (Graphical User Interface) Các điều khiển này được sử dụng để cung cấp giao diện và chức năng cho web form

Sau đây là danh sách các điều khiển Web server hay sử dụng:

Tên

Một số thuộc tính, phương thức và sự kiện

Trang 11

Lable Cho phép hiển thị nhãn trên

TextBox

Điều khiển này thường được sử dụng để nhận input từ người sử dụng

Properties: AccessKey, AutoPostBack, MaxLength, Text, TextMode

Event: TextChanged

Button

Điều khiển Button chủ yếu được sử dụng để Submit thông tin lên Server

Properties: AccessKey, Text, Enable

Event: Click, Command

Image Điều khiển Image cho phép hiển

thị ảnh trên Web page

Properties: ImageUrl, AlternateText, ImageAlign, ToolTip

ImageButton Điều khiển ImageButton cho phép

tạo Button dạng ảnh trên Web page

Properties: ImageUrl, AlternateText, ImageAlign, OnClientClick

Event: Click, Command

LinkButton

Điều khiển LinkButton cho phép hiển thị trên Web page một nút lệnh dưới dạng HyperLink

Properties: PostBackURL, Text, OnClientClick, Event: Click, Command

Pannel

Điều khiển Panel được sử dụng giống như một container chứa các điều khiển Web Server khác

Properties: Controls, GroupingText,…

CheckBox Điều khiển cho phép chọn hay

không chọn

Properties: AutoPostBack, Checked, Text

Event: CheckedChanged

RadioButton

Điều khiển RadioButton được sử dụng để chọn một trong nhiều lựa chọn khác nhau

Properties: AutoPostBack, Checked, Text, GroupName Event: CheckedChanged

CheckBoxList

Điều khiển CheckBoxList được xét như một nhóm các điều CheckBox có liên quan với nhau

Properties: AutoPostBack, Items, Text, SelectedIndex, SelectedValue

Method: ClearSelection Event: SelectedIndexChanged RadioButtonLis

t

Tương tự như một nhóm các điều khiển RadioButton

Properties: AutoPostBack, Items, Text, SelectedIndex, SelectedValue

Method: ClearSelection Event: SelectedIndexChanged

Trang 12

SelectionMode Method: ClearSelection(), GetSelectedIndices()

Event: SelectedIndexChanged DropDownList

Điều khiển DropDownList là điều khiển cho phép chọn một phần tử trong danh sách các phần tử thả xuống

Properties: AutoPostBack, Items, SelectedIndex, SelectedItem, Text Method: ClearSelection()

Event: SelectedIndexChanged

Calendar Điều khiển Calendar là điều khiển

cho phép hiển thị lịch trên Browse

Properties: DayHeaderStyle, DayNameFormat,

SelectedDate, SelectionMode

AdRotator

là điều khiển đặc biệt của ASP.NET cho phép hiển thị các banner quảng cáo

Menu Là điều khiển dùng để điều

hướng các trang trong WebSite

Properties: Items, Orientation, PathSeparator, StaticDisplayLevels

Method:: FindItem() Event: MenuItemClick

SelectedValue,NodeStyle, ShowLines, SelectedNode Method:: FindNode() Event: SelectedNodeChanged, TreeNodeCollapsed,

TreeNodeExpanded, TreeNodeCheckChanged

ImageMap

ImageMap cho phép tạo các điểm nóng ảnh có khả năng clickable

View

Điều khiển này thường được sử dụng giống như một container chứa các điều khiển khác

Trang 13

MultiView Một điều khiển MultiView chứa

một hoặc nhiều View

Properties: ActiveViewIndex,

SetActiveView Event: ActiveViewChanged

Sử dụng control AdRotator: Quảng cáo là một trong những cách tạo ra

những lợi nhuận cho nhà sở hữu website AdRotator cho phép chọn ngẫu nhiên các ảnh đặt lên trang web quảng cáo, để làm được điều này trước tiên ta phải tạo danh sách các file ảnh cần đưa lên trang web quảng cáo Danh sách này được đặt trong một file XML (vào menu Website\Add New Item\ và chọn Template là XML file – ads.XML) theo cấu trúc sau:

<ImageUrl> Địa chỉ của Ad để hiển thị (địa chỉ file ảnh)

<NavigateUrl> Địa chỉ điều hướng nếu người sử dụng click vào Ad

<AlternateText>

Text để hiển thị như là ToolTip nếu người sử dụng di chuột trên

Ad Và nếu địa chỉ ImageUrl không thể hiển thị thì dòng text này sẽ hiển thị thay thế

<Keyword> Một tên category sử dụng cho việc lọc các Ads khi hiển thị

<Impressions> Một số thể hiện khả năng một Ad sẽ được hiển thị Các

Ads với số càng cao thì khả năng hiển thị càng nhiều

b) file vidu2_2.aspx

<%@ Page Language="VB" %>

Trang 14

2.1.3 Web HTML Server Control:

Theo mặc định các thẻ HTML được sử dụng để tạo các điều khiển HTML tương ứng trên các ứng dụng ASP.NET và được xét như là plain text, không thể code bên server –side

HTML Server Controls cung cấp để truy xuất vào các thuộc tính và tính chất của các thẻ HTML

HTML Server Controls trong ASP.NET là tập các điều khiển tương ứng các thẻ HTML, chúng được khai báo trên Web page bằng cách thêm thuộc tính runat=“Server”

Sau đây là một số class hay sử dụng của nhóm điều khiển HTML Server:

HtmlButton Cho phép lập trình sử dụng thẻ HTML <button> trên Server HtmlForm Cho phép lập trình sử dụng thẻ HTML <form> trên Server

HtmlInputButton Cho phép lập trình sử dụng thẻ HTML <Input type=button >

<Input type= submit >, <Input type=reset > trên Server

HtmlInputText Cho phép lập trình sử dụng thẻ HTML <Input type=text >

<Input type= password > trên Server HtmlTable Cho phép lập trình sử dụng thẻ HTML <table> trên Server

HtmlSelect Cho phép lập trình sử dụng thẻ HTML <select> trên Server

Một câu hỏi đặt ra là ta nên sử dụng HTML Controls hay ASP.NET Server Controls? Cả hai loại đều sinh ra mã ánh xạ vào các phần tử HTML như nhau Câu hỏi này liên quan đến các phần tử đơn trên một trang, như thẻ text box, the button, tables, v v Và được các nhà phát triển kiến trúc ASP.NET của Microsoft trả lời rằng: Mục đích là sử uyển chuyển, sử dụng loại điều khiển nào tùy thuộc vào mục đích, tình huống sử dụng, và thói quen của người sử dụng

Server controls và HTML controls đưa ra các chức năng chồng chéo lên nhau Tổng quát, làm việc với Server controls thường dễ dàng hơn Bảng sau đưa ra danh sách các Server controls và HTML controls với các task lập trình

Trang 15

Hiển thị text Label, TextBox, Literal Label, Text Field, Text

Area, Password Field

Chọn từ danh sách DropDownList, ListBox,

DataList, Repeater List Box, Dropdown Thực thi lệnh Button, LinkButton,

ImageButton

Button, Reset Button, Submit Button

Set values CheckBox, CheckBoxList,

RadioButton, RadioButtonList Checkbox, Radio Button Hiển thị images Image, ImageButton Image

Navigation Hyperlink none (use <a> tags in text) Group controls Panel, Placeholder Flow Layout, Grid

Layout Làm việc với dates Work with dates none

Store data on page (provided by state

Validate data

RequiredFieldValidator, CompareValidator, RangeValidator, RegularExpressionValidator, CustomValidator,ValidationS ummary

none (use page- level scripts)

2.1.4 Validation Controls:

Validation Controls là các điều khiển đảm bảo sự xác nhận tính hợp lệ của dữ liệu được nhập vào

Một số điều khiển kiểm tra tính hợp lệ

- RequiredFieldValidator: RequiredFieldValidator là điều khiển đảm bảo người dùng nhập dữ liệu trên các điều khiển Input Nếu người dùng không nhập dữ liệu trên điều khiển Input mà liên kết với điều khiển RequiredFieldValidator thì tiến trình của trang sẽ bị dừng lại cho đến khi dữ liệu được nhập vào

- CompareValidator là điều khiển dùng để so sách giá trị của một điều khiển Input với một điều khiển Input khác hoặc với một giá trị hằng Ta có thể sử dụng thuộc tính Type quy định kiểu dữ liệu của các giá trị nhập vào để so sánh như: String (mặc định), Integer, Double, Date và Currency

Trang 16

- RangeValidator là điều khiển được ASP.NET cung cấp để kiểm tra giá trị người dùng nhập vào có nằm trong phạm vi được chỉ định hay không? Điều khiển này kiểm tra tính hợp lệ của các giá trị dạng numeric, character và date

- RegularExpressionValidator là điều khiển dùng để kiểm tra tính hợp lệ của giá trị trên điều khiển Input theo một khuôn mẫu của biểu thức Ví dụ, expression có thể là pattern của phone number, mail Address,…

- CustomValidator là điều khiển dùng để kiểm tra tính hợp lệ của giá trị nhập trên điều khiển Input có hợp lệ theo một logic đã chỉ định hay không Ta có thể dùng điều khiển này để kiểm tra số chẵn, lẻ, nguyên tố, …

- ValidationSummary là điều khiển dùng để xem lại các thông báo lỗi xuất hiện trên các điều khiển Validation khác Điều khiển ValidationSummary tổng hợp và hiển thị tất cả các thông báo lỗi trên một trang

2.2 Các đối tượng trong ASP.NET

2.2.1 Đối tượng Request

Ðối tượng Request dùng để nhận thông tin yêu cầu được gửi từ Client Side đến

Server Side Nó được cài đặt trong lớp HttpRequest thuộc tên miền System.Web

Khi sử dụng đối tượng Request ta có thể sử dụng các thành phần (collection) và thuộc tính của nó cho trong bảng sau:

Thuộc tính/

FilePath Trả về đường dẫn ảo của yêu cầu, thuộc tính này tương đương vơi

SCRIPT_NAME trong ASP

Files Trả về HttpFileCollection của tập nhiều tập tin được tải lên

Server (sử dụng cho dạng multi- part/forms)

Form

Trả về một tập dữ liệu của nội dung từ Form(NameValueCollection) Tham khảo Request Collection trong phần kế tiếp

Params Thuộc tính này sử dụng để lấy giá trị của phương thức trong

Form, QueryString, ServerVariable hay Cookie

Path Ðường dẫn ảo của yêu cầu, tương đương với

PATH_INFO trong ASP

PathInfo Ðường dẫn ảo của yêu cầu, tương đương với

PATH_INFO trong ASP

PhysicalApplicat

ionPath

Ðường dẫn vật lý của thư mục gốc, tương đương với APPL_PHYSICAL_PATH

PhysicalPath Ðường dẫn vật lý của yêu cầu, tương đương với

PATH_TRANSLATED trong ASP

QueryString

Trả về một tập dữ liệu của nội dung từ QueryString (NameValueCollection) Cách truy cập tập dữ liệu này khác với truy cập tập dữ liệu từ Form của ASP

TotalBytes Dung lượng của Stream trong luồng dữ liệu

Trang 17

Url

Ðối tượng Url chứa đựng chi tiết của yêu cầu Ðối tượng Url (từ không gian tên System) bao gồm các thông tin chi tiết như Port, DNS,

UserHostAddress Ðịa chỉ IP của người sử dụng, tương đương với

REMOTE_ADDR trong ASP

UserHostName Tên DNS của người sử dụng, tương đương với

REMOTE_NAME trong ASP

MapPath() Chuyển đổi đường dẫn ảo thành đường dẫn vật lý

SaveAS() Lưu yêu cầu HTTP vào đĩa

QueryString: QueryString được định nghĩa là một chuỗi nằm sau dấu? trong

chuỗi URL (Uniform Resource Locator) trên phần Address của trình duyệt khi triệu gọi đến một trang Web

Ví dụ: Ta gọi triệu địa chỉ sau: 03/ex5.asp?al=A&page=cust Trong đó, QueryString bao gồm các cặp tham số và giá trị sau: al=A&page=cust

http://192.168.10.12/Chapter-Các tham số được khai báo cách nhau bằng ký tự & và giá trị của mỗi tham số được khai báo sau dấu = của mỗi tham số

- Nếu tham số không có dấu bằng theo sau, giá trị của tham số đó sẽ được trả

về khi sử dụng Request.QueryString là null

- Trong trường hợp có dấu bằng nhưng không tồn tại giá trị thì kết quả

trả về khi sử dụng Request.String là rỗng

Ðối tượng Request cho phép truy cập đến nội dung của Form hay QueryString, trong đó bao gồm các phần tử cùng tên như trong các trình bày chúng ta

sử dụng thẻ checkbox, radio,.v.v cùng tên và khác giá trị

2.2.2 Đối tượng Response:

Ðối tượng Respose dùng để gửi thông tin ngược trở lại Client Side từ

Server Side Nó được cài đặt trong lớp HttpResponse thuộc tên miền System.Web

Các thuộc tính và phương thức hay sử dụng đối với đối tương này cho trong bảng sau:

ContentType

Chỉ định nội dung phúc đáp Thuộc tính cho phép nhận

và thiết lập kiểu Multipurpose Internet Mail Extension (MIME) của Response (mặc định là “text/html”)

Trang 18

Redirect() Chuyển hướng đến địa chỉ file trong cùng ứng dụng hay URL

khác trong lúc thi hành

Write() Ghi thông tin từ các kiểu dữ liệu như Char, Object, String,

Array ra trang Web

Flush() Phương thức này gửi Buffer của Response đến client

2.2.3 Đối tượng Server:

Đối tượng Server thể hiện các phương thức tiện ích đa dạng để chuyển đổi điều khiển giữa các trang, giải mã HTML text, nhận thông tin lỗi, … Đối tượng Server thuộc lớp HttpServerUtility thuộc không gian miền System.Web

- Lớp HttpServerUtility cung cấp các phương thức cho các tác vụ như tiến trình

xử lý các yêu cầu, mã hóa và giải mã các chuỗi URL, truy cập các thông tin lỗi,… Lớp HttpServerUtility cung cấp hai thuộc tính:

+ MachineName: Trả về tên Server mà ứng dụng đang chạy

Public ReadOnly Property MachineName() As String

+ ScriptTimeout: Lấy hoặc thiết lập thời gian (tính bằng giây) mà một Request timeout đã xác định

Public Property ScriptTimeout() As Integer

Ví dụ:

Response.Write("Time Out:" + Server.ScriptTimeout.ToString)

Một số phương thức của lớp HttpServerUtility thường được sử dụng đó là: + Execute: Là phương thức xử lý trang Web được chỉ định trên ngữ cảnh (context) của current Request

Public Sub Execute(ByVal path As String)

path: Là URL path cần được thực thi

+ HtmlEncode: Là phương thức mã hóa chuỗi ký tự để hiển thị trên trình duyệt Có hai dạng hàm:

Public Function HtmlEncode(ByVal s As String) As String

Dùng để mã hoá chuỗi s và trả về chuỗi đã mã hóa

+ UrlEncode: Là phương thức mã hóa chuỗi URL:

Public Function UrlEncode(ByVal s As String) As String

Public Sub UrlEncode(ByVal s As String, ByVal output As

System.IO.TextWriter)

2.2.4 Đối tượng Application

Trang 19

Đối tượng Application được sử dụng để tham chiếu đến thể hiện của lớp HttpApplicationState Application State (trạng thái ứng dụng) lưu trữ toàn bộ thông tin

sử dụng qua lại giữa nhiều phiên giao dịch (Session) và các yêu cầu (request) Đối tượng Application nắm hầu hết các thông tin được sử dụng cho nhiều trang của ứng dụng

Lớp HtttpApplicationState thuộc không gian miền System.Web Lần đầu tiên Client yêu cầu tài nguyên URL từ thư mục ảo của ứng dụng ASP.NET thì một thể hiện của lớp HttpApplicationState được tạo

a) Các thuộc tính của đối tượng Application: Đối tượng Application sẽ thể hiện

các thuộc tính của lớp HtttpApplicationState Một vài các thuộc tính quan trọng của lớp này là:

- AllKeys: Truy xuất các Access Keys từ tập các trạng thái ứng dụng Đoạn code sau minh họa cách sử dụng thuộc tính AllKeys

Dim strKeys(Application.Count) As String strKeys = Application.AllKeys

- Contents: truy xuất tham chiếu đến đối tượng HttpApplicationState

Chú ý: Cách truy xuất Application.Item("User") tương đương với

Application("User") và tương đương với Application(0) trong đó 0 là chỉ số Index của đối tượng đầu tiên trong tập hợp

b) Phương thức của lớp “HttpApplicationState: Sau đây là một số phương thức

quan trọng của lớp HttpApplicationState:

- Add: Là phương thức thêm một đối tượng mới vào tập trạng thái ứng dụng Public Sub Add(ByVal name As String, ByVal value As Object)

Đoạn code sau minh họa cách sử dụng phương thức Add

Application.Add(“UserName”, “Huongct”)

- Clear: Là phương thức xóa tất cả đối tượng trong tập trạng thái ứng dụng

Cú pháp của phương thức Clear là:

Public Sub Clear()

Đoạn code sau minh họa cách sử dụng phương thức:

Application.Clear()

- Remove: Là phương thức xóa một đối tượng chỉ định trong tập trạng thái ứng dụng Cú pháp của phương thức là:

Public Sub Remove(ByVal name As String)

Đoạn code sau minh họa cách sử dụng phương thức:

Application.Remove(“UserName”);

- RemoveAll Method: Là phương thức xóa tất cả đối tượng trong tập trạng thái ứng dụng Cú pháp của phương thức là:

Public Sub RemoveAll()

Đoạn code sau minh họa cách sử dụng phương thức:

Application.RemoveAll();

- RemoveAt Method: Là phương thức xóa một đối tượng chỉ định trong tập trạng thái ứng dụng Cú pháp của phương thức là:

Trang 20

Public Sub RemoveAt(ByVal index As Integer)

Đoạn code sau minh họa cách sử dụng phương thức:

Public Sub Lock()

Phương thức UnLock():

Phương thức UnLock(), thuộc lớp HttpApplicationState, được sử dụng để

mở khóa cho các biến lưu trữ trong đối tượng Application Các biến khi đã được mở khóa thì các người dùng khác có thể thay đổi chúng

Phương thức Lock() được mở tương ứng bởi phương thức UnLock() Trong trường hợp không gọi phương thức UnLock(), NET Framework tự động xóa Lock() khi Request được hoàn thành, hoặc Request đến thời gian TimeOut, hoặc khi xuất hiện ngoại lệ (Request fail)

Cú pháp của phương thức UnLock():

Public Sub UnLock()

Ví dụ: Sử dụng các phương thức trên

Application.Lock()

Application("VisitorsCount")= Application("VisitorsCount")+1

Application.UnLock()

2.2.5 Đối tượng Session

Khi có nhu cầu truyền giá trị từ trang này sang trang khác trong một phiên làm việc, ta sử dụng đối tượng Session Bằng các sử dụng phương thức và thuộc tính của đối tượng này Ta có thể khởi tạo, gán giá trị, truy cập và huỷ đối tượng này trong một phiên làm việc nhằm quản lý người sử dụng khi họ truy cập vào Web Site Web Server

sẽ tự động tạo ra đối tượng Session khi chúng chưa tạo ra, đối tượng này sẽ có chu trình sống cho đến khi một trong các điều kiện sau xảy ra:

- Người sử dụng đóng trình duyệt, tức là đóng cửa sổ cuối cùng của cùng một trình duyệt

- Khi thời gian sống (expiry) của chúng hết hạn

- Chúng ta khai báo huỷ bỏ đối tượng Session bằng các phương thức của chúng Ðối tượng Session được cài đặt trong lớp HttpSessionState thuộc không gian tên System.Web.SessionState

a) Session Variables (Các biến Session)

Các biến Session được được sử dụng để lưu trữ thông tin về phiên làm việc của một người dùng Các thông tin này có thể sử dụng cho tất cả các trang trong ứng dụng Thông thường, thông tin được lưu trữ trong các biến Session là UserName, Password,… Các biến Session được xóa ngay khi phiên làm việc với Website của người dùng kết thúc

Session Variables được lưu trữ trong lớp SessionStateItemCollection thuộc không gian miền System.Web.SessionState Các biến này được thể hiện thông qua thuộc tính System.Web.HttpContext.Session

Trang 21

- Thuộc tính SessionID: Sessions được nhận dạng bởi Session Identifiers, với giá trị duy nhất Session Identifiers được đọc thông qua thuộc tính SessionID Khi trạng thái của Session được Enable, mỗi request một trang trong ứng dụng đều được kiểm tra giá trị SessionID Nếu giá trị SessionID không được cung cấp thì một Session mới được khởi tạo Sau đó SessionID được gửi cho Session tới Browse cùng với Response Theo mặc định, giá trị của SessionID được lưu trữ trên một Cookie Đoạn code sau minh họa sử dụng thuộc tính SessionID

Response.Write(“SessionID:“+Session.SessionID)

- Phương thức Clear: Là phương thức xóa tất cả đối tượng trong tập Session State Cú pháp của phương thức Clear là:

Public Sub Clear()

Đoạn code sau minh họa cách sử dụng phương thức:

Session.Clear()

- Phương thức Remove: Là phương thức xóa một đối tượng chỉ định trong tập Session State Cú pháp của phương thức là:

Public Sub Remove(ByVal name As String)

Đoạn code sau minh họa cách sử dụng phương thức:

Session.Remove(“UserName”);

- RemoveAll: Là phương thức xóa tất cả đối tượng trong tập Session State Cú pháp của phương thức là:

Public Sub RemoveAll()

Đoạn code sau minh họa cách sử dụng phương thức:

Session.RemoveAll();

- RemoveAt: Là phương thức xóa một đối tượng chỉ định trong tập

Session State Cú pháp của phương thức là:

Public Sub RemoveAt(ByVal index As Integer)

Đoạn code sau minh họa cách sử dụng phương thức:

Session.RemoveAt(0);

c) Session State Events

ASP.NET 2.0 cung cấp 2 sự kiện cho phép quản trị Session đó là:

2.2.6 Cookies

a) Tạo và đọc Session Cookies

Một Session được định nghĩa là một khoảng thời gian bắt đầu và kết thúc tương tác của người dùng với ứng dụng Các thông tin của Session như Login, Logout và các trang được viếng thăm được lưu trữ trên file temporary, được gọi là Session Cookies Một Cookie là một file temporary (tạm) hoặc file permanent (thường xuyên) được sử dụng bởi ứng dụng Web để lưu trữ thông tin người sử dụng Các Session Cookies có một khoảng thời gian giới hạn, quá thời hạn đó người dùng phải Login lại

Một Session Cookie có thể xem như là một cookie tạm thời Session Cookies được lư trữ tạm trên bộ nhớ Khi trình duyệt bị đóng, các session cookies này

Trang 22

không được giữ lại Do đó, lần tiếp theo, người dùng này viếng thăm cùng một site thì anh ta được đối sử giống như một người khách mới

Thay vì tập hợp các thông tin từ máy tính của người sử dụng, session cookies thường được sử dụng cho các ứng dụng Web mà trong đó các người dùng cần được nhận dạng để họ có thể di chuyển từ trang này sang trang khác

Ví dụ sau minh họa cách tạo và đọc Session Cookie:

protected void btnAdd_Click(object sender, EventArgs e)

{ Response.Cookies["Login"]["User"] = txtUser.Text;

}

protected void btnView_Click(object sender, EventArgs e)

{if (Request.Cookies["Login"] == null)

Các Cookies lưu trữ thông tin mà được ghi nhớ thông qua nhiều phiên giao dịch được gọi là Persistent Cookies (Cookie bền)

Persistent Cookies được xem như là các cookies thường xuyên hay các cookies lưu trữ Các Persistent Cookies có thời gian sống (Expiry date) và được lưu trữ trên đĩa cứng của người sử dụng cho đến khi hết thời gian sống hoặc cho đến khi được xóa thủ công

Ví dụ sau minh họa cách tạo Persitent Cookie:

HttpCookie userInfoCookie=new HttpCookie("UserInfo");

2.3 Biến và các cấu trúc điều khiển:

.NET Framework cung cấp nhiều ngôn ngữ lập trình khác nhau, mỗi một ngôn ngữ có cách khai báo biến và cấu trúc điều khiển khác nhau Trong giáo trình này ta sử dụng Visual Basic.NET để minh họa

2.3.1 Khai báo biến

Ta thực hiện khai báo biến theo cú pháp sau:

Dim <Tên biến> AS <Kiểu dữ liệu>

Trang 23

Trong trang ASP.NET, theo mặc định biến phải được khai báo trước khi được sử dụng Ta có thể không khai báo biến mà vẫn sử dụng chúng trong trang ASP.NET bằng cách gán giá trị false (mặc định là true) cho Page Explicit theo

cú pháp sau: <%@ Page Explicit=False%>

Các kiểu biến được cho trong bảng sau:

CLR (Common Language

Runtime) Type Visual Basic Type C# Type

Để chuyển đổi kiểu dữ liệu ta sử dụng:

- Hàm Ctype theo có pháp sau:

CType(expression, typename)

Trong đó expression là biểu thức cần chuyển đổi sang kiểu typename

- Sử dụng phương thức Parse của hầu hết các kiểu dữ liệu:

Dim Age As Integer

Age = Integer.Parse(AgeTextBox.Text)

- Trong trường hợp chuyển đổi sang kiểu chuỗi ta sử dụng theo phương thức ToString() theo cú pháp sau:

Dim instance As AppDomain

Dim returnValue As String

returnValue = instance.ToString

2.3.2 Các cấu trúc điều khiển

a) Cấu trúc rẽ nhánh If…Then

Ta sử dụng cấu trúc If …Then theo một trong các cú pháp sau:

- If condition Then [statement]

-If condition Then [statements] End If

-If condition Then [statements]

Trang 24

[ElseIf elseifcondition Then [elseIfStatements]] [Else [elseStatements]]

End If

Trong đó:

+ condition: Là biểu thức điều kiện, trả về giá trị True hoặc False

+ statement: Là một câu lệnh được thực hiện khi biểu thức điều kiện condition nhận giá trị True

+ statements: Là một câu lệnh, hoặc nhiều câu lệnh được thực hiện khi biểu thức điều kiện condition nhận giá trị True

+ elseifcondition: Tương tự như condition

+ elseifstatements: Là một câu lệnh được thực hiện khi biểu thức điều kiện elseifcondition nhận giá trị True

+ elsestatements: Là các câu lệnh được thực hiện khi tất cả các biểu thức điều kiện là false

Chú ý: Ta có thể sử dụng khối các câu lệnh if lồng nhau

Response.Write("Trị tuyệt đối của x-y: " & a)

End Sub

</script>

b) Cấu trúc rẽ nhánh Select Case…

Select [ Case ] testexpression

+ testexpression: Là biểu thức giá trị có thể liệt kê được, giá trị thuộc một

trong các loại dữ liệu sau: Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, Short, Single, String

+ expressionlist: Là danh sách các giá trị mà testexpression có thể nhận, có

thể là hằng hoặc biểu thức, chúng cách nhau dấu Biểu thức trong Case có nhận một trong các dạng sau:

Trang 25

+ statements: Một hay nhiều câu lệnh trong Case

+ elsestatements: Một hay nhiều câu lệnh trong Case Else

+ condition : Là biểu thức Boolean

+ statements : Là một câu lệnh hoặc khối câu lệnh lặp lại

+ Exit Do: Là câu lệnh thoát khỏi vòng lặp Do loop

d) Cấu trúc While … End While

Cấu trúc này lặp một khối câu lệnh trong khi điều kiện là True, theo cú pháp sau

+ condition : Là biểu thức Boolean

+ statements : Là một câu lệnh hoặc khối câu lệnh lặp lại

+ Exit While: Dùng để thoát khỏi vòng lặp

Ví dụ : Sử dụng cấu trúc While… End While

<script runat="server">

Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)

Dim counter As Integer = 0

While counter < 10 counter += 1

Response.Write(counter.ToString & "<BR>")

End While

End Sub

</script>

e) Cấu trúc With … End With

Cấu trúc With … End With được dùng thực hiện với một chuỗi câu lệnh cùng tham chiếu đến một đối tượng hoặc cấu trúc Sử dụng theo cú pháp sau:

Trang 26

With object

[ statements ] End With

Ví dụ: Sử dụng cấu trúc With… End With

f) Cấu trúc lặp For Each …Next

Cấu trúc lặp For Each …Next dùng để lặp các câu lệnh đối với mỗi phần tử element trong một tập hợp group Chúng được sử dụng theo cú pháp sau:

For Each element [ As datatype ] In group

[ statements ] [ Exit For ]

[ statements ]

Next [ element ]

Trong đó:

+ element : là biến dùng để duyệt các phần tử trong một tập hợp

+ datatype : Kiểu của element và phải được khai báo nếu chưa khai báo

trước đó, kiểu của nó cùng kiểu với các phần tử của tập hợp

+ group : Chỉ một tập hợp các phần tử mà các câu lệnh lặp trên đó

+ statements : Một hoặc nhiều câu lệnh

+ Exit For : Dùng để thoát khỏi vòng lặp For Each

g) Cấu trúc lặp For …Next

Đây là cấu trúc lặp chỉ định được số lần lặp, được sử dụng theo cú pháp sau đây:

For counter [ As datatype ] = start To end

[ Step step ]

[ statements ]

Trang 27

[ Exit For ]

[ statements ] Next [ counter ]

Trong đó:

+ counter: Đây là biến đếm điều khiển quá trình lặp

+ datatype: Kiểu của biến counter

+ start :Giá trị khởi tạo cho biến count

+ end: Giá trị kết thúc của biến counter

+ step: Bước nhảy của biến, mặc định là 1

+ statements: Các câu lệnh thực hiện trong vòng lặp

+ Exit For: Dùng để thoát khỏi vòng lặp

/ (chia) : variable=expression1 / expression2

^ (lũy thừa) : variable=expression1 ^ expression2

\ (chia lấy module) : variable=expression1 \ expression2

Mod (chia lấy phần dư): variable=expression1 Mod

expression2

Visual Basic.Net còn cung cấp một số phép toán đặc biệt sau:

+= (cộng bằng) : variable+=expression tương đương với biểu thức

variable= variable + expression

-= (trừ bằng) : variable -=expression tương đương với biểu thức

variable= variable - expression

*= (nhân bằng) : variable *=expression tương đương với biểu thức

variable= variable * expression

/ =(chia bằng) : variable *=expression tương đương với biểu thức

variable= variable/expression

^=(lũy thừa bằng) : variable ^=expression tương đương với biểu thức

variable= variable ^ expression

\ =(chia lấy phần nguyên bằng) : variable \=expression

tương đương với biểu thức variable= variable \ expression

b) Các phép toán so sánh

Các phép toán so sánh trả về giá trị kiểu Boolean

- Các phép toán so sánh số học: =, <>, >, >=, <, <=

- So sánh xâu ký tự: Like (resul =string Like pattern), và các phép toán so sánh

=, <>, >, >=, <, <= dùng để so khớp từng xâu ký tự giữa hai biểu thức so sánh

- So sánh các đối tượng: Is (result = object1 Is object2), IsNot (result = object1

Trang 28

2.4 Thủ tục và hàm

2.4.1 Thủ tục Sub

Thủ tục Sub là một chuỗi các câu lệnh Visual Basic được bao trong các câu lệnh Sub và End Sub Thủ tục Sub thực hiện một tác vụ nào đó và sau đó trả về điều khiển

cho code chứ không trả về giá trị cho code đang gọi nó

- Khai báo thủ tục sub:

[modifiers] Sub subname[(parameterlist)]

' Statements of the Sub procedure End Sub

Trong đó: modifiers chỉ định pham vi truy cập (public, private, protected, friend)

của thủ tục, mặc định là public

Mỗi lần thủ tục được gọi, các câu lệnh trong thủ tục được gọi bắt đầu từ câu

lệnh đầu tiên sau Sub và kết thúc khi gặp các từ khóa End Sub, Exit Sub, hoặc câu lệnh Return Ta có thể định nghĩa thủ tục Sub các module, modules, classes, và structures

- Tham số trong sub:

Thực hiện khai báo các tham số tương tự như khai báo biến, chỉ định tên tham số

và kiểu dữ liệu của tham số đó Ngoài ra ta có thể chỉ định kiểu truyền cho tham số này theo cú pháp sau:

[Optional] [ByVal | ByRef]parametername As datatype

+ Với chỉ định tùy chọn Optional ta phải cung cấp giá trị mặc định theo cú pháp sau:

Optional [ByVal | ByRef] parametername As datatype = defaultvalue

+ Với tùy chọn ByVal ta khai báo tham số đó là tham trị (mặc định là tham trị): Khi truyền giá trị cho tham số là tham trị thì giá trị của nó sẽ không thay đổi khi

ra khỏi hàm hay thủ tục

+ Với tùy chọn ByRef ta khai báo tham số đó là tham biến: Khi truyền giá trị cho tham số là tham biến thì giá trị của nó sẽ thay đổi nếu có cập nhật khi ra khỏi hàm hay thủ tục

- Gọi thủ tục sub: Để gọi thủ tục ta sử dụng cú pháp sau: [Call]

[modifiers] Function functionname[(parameterlist)] As returntype

' Statements of the Function procedure End Function

Các tham số trong hàm tương tự như thủ tục Mỗi khi được gọi, hàm sẽ thực

hiện tuần tự các câu lệnh cho đến khi gặp một trong các câu lệnh End Function, Exit Function,hoặc Return

-Trả về các giá trị của hàm: Giá trị của hàm sẽ trả về cho chương trình gọi

chúng theo một trong hai cách sau:

+ Gán giá trị cho tên hàm trong một hoặc nhiều câu lệnh trong thân hàm, trong trường hợp này điều khiển không được trả về cho trương trình gọi hàm

cho đến khi gặp câu lệnh End Function hoặc Exit Function

Function functionname[(parameterlist)] As returntype

' The following statement does not transfer control back

' to the calling code

Trang 29

functionname = expression

' When control returns to the calling code, expression

' is the return value

End Function

+ Sử dụng câu lệnh Return để chỉ định giá trị trả về cho hàm và điều khiển được trả về cho chương trình gọi ngay lập tức

Function functionname[(parameterlist)] As returntype

' The following statement immediately transfers control

' back to the calling code and returns the value of

' expression Return expression End Function

- Gọi hàm:Hàm có thể được gán giá trị cho biến hoặc sử dụng như một toán

hạng trong biểu thức như sau:

value = functionname[(argumentlist)]

If ((functionname[(argumentlist)] / 3) <= expression) Then…

3 Các đối tượng ADO.Net:

Mục tiêu: Sử dụng tốt các đối tượng ADO.Net, có khả năng lập trình kết nối

cơ sở dữ liệu

3.1 Các đối tượng trong ADO.Net

ADO.Net là đối tượng dùng để thao tác với cơ sở dữ liệu trong NetFramework, các ngôn ngữ lập trình trong Visual Studio (VB.Net, C#, ) dùng phương thức kết nối này để giao tiếp với cơ sở dữ liệu Lõi của các lớp ADO.NET tồn tại trong namespace System.Data Phần quan trọng nhất của chúng là các tên miền System.Data.SqlClient

và System.Data.OleDb Chúng cung cấp các classes sử dụng cho việc truy cập SQL Server databases và OLE (Object Linking and Embedding) DB-compliant databases (phục hồi dữ liệu)

Có thể chia làm 2 phần chính:

- Mannaged Provider Component: bao gồm các đối tượng như: DataAdapter, DataReader, Connection, Command giữ nhiệm vụ làm việc trực tiếp với dữ liệu như datatbase, file,

- Content Component: bao gồm các đối tượng như DataSet, DataTable, DataView, DataRow, DataColumn, DataRelation đại diện cho dữ liệu thực sự cần làm việc

Bảng ADO.Net Data Objects giới thiệu sơ lược các đối tượng dùng để thao tác

dữ liệu:

DataSet

Sử dụng cùng với các điều khiển dữ liệu khác, dùng lưu trữ các kết

quả được trả về bởi các đối tượng commands và data adapters Data set là một view phân cấp của dữ liệu, bằng việc sử dụng các

thuộc tính và các collections trong đối tượng DataSet, ta có thể nhận được toàn bộ các quan hệ (relations), các tables riêng biệt, rows, và columns

DataTable

Là một đối tượng của dataset, đối tượng DataTable cho phép thao tác dữ liệu trong một table riêng biệt Được dung tương tự như đối tượng recordset trong ADO

Trang 30

DataView Sử dụng đối tượng này để lọc, sắp xếp dữ liệu, duy trì các views

khác nhau của dữ liệu

DataRow Đối tượng thao tác các rows của dữ liệu trong datatables Dùng thực

hiện các thao tác adding, deleting, và modifying records

DataColumn Nhận các thông tin tại các cột bằng việc sử dụng đối tượng

DataColumn

DataRelation Chứa các mối ràng buộc trong cơ sở dữ liệu

Bảng NET Data Provider Classes thường được sử dụng để thao tác dữ liệu:

Command Tương tự như đối tượng ADO Command, cho phép ta thực hiện

các stored procedures trong code

Connection

Đây là đối tượng mở kết nối tới server và database mà ta muốn làm việc Khác với đối tượng ADO Connection, cách thức kết nối phụ thuộc vào đối tượng mà ta muốn làm việc, như là đối tượng DataReader hay DataSet

DataAdapter

Đối tượng DataAdapter cho phép ta tạo các câu lệnh SQL và

điền dữ liệu vào datasets Nó cũng cho phép tạo các action queries

cần thiết, như là Insert, Update, và Delete

DataReader

Đối tượng này tạo một read-only, forward-onlystream của dữ

liệu mà cho phép chúng đặt trên các điều khiển, như ListBox và ComboBox

Parameter Đây là đối tượng cho phép chỉ định các tham số mà các đối

Trong phần này trọng tâm tìm hiểu lớp System.Data.SqlClient để làm việc với Database xây dựng trên SQL Server

3.2 Các lớp SqlClient trong mô hình ADO.Net

Danh sách sau chứa các classes ADO.NET mà chúng sẽ được sử dụng trong quá trình xây dựng ứng dụng sử dụng SQL Server Databases: SqlConnection, SqlDataAdapter, SqlCommand, SqlParameter, SqlDataReader

Để sử dụng provider này cần phải viết lệnh Imports (khai báo Namespace) trên đầu mỗi class:

<%@ Import Namespace="System.Data.SqlClient" %>

Nếu ta muốn sử dụng lõi của classes ADO.NET, như là DataSet và DataView

không cần gõ đầy đủ tên miền, cần phải Import tên miền System.Data như sau:

<%@ Import Namespace="System.Data" %>

Sau đây là các classes chính tồn tại trong namespace System.Data.SqlClient

Trang 31

3.2.1 Class SQLConnection

Class SqlConnection cung cấp một connection tới SQL Server database Khi xây dựng một đối tượng SqlConnection có thể chọn để chỉ định một chuỗi kết nối (connection strings) như một tham số Chuỗi connection chứa tất cả các thông tin cần thiết để mở một connection tới database Nếu ta không chỉ định chuỗi kết nối trong khi xây dựng, có thể thiết lập nó bằng việc sử dụng thuộc tính

SqlConnection.ConnectionString

Khai báo chuỗi kết nối trong VB.net:

Dim strconn As String="server=AA;database=QLDiemSV;

user id=sa;password=pass2008")

Dim objConnection As New SqlConnection(strconn)

Các tham số của chuỗi kết nối (Connection String Parameters)

Bảng Tham số của chuỗi kết nối

Server

Tên của SQL Server mà ta muốn truy xuất Nó thường là tên của máy tính đang chạy SQL Server Ta có thể sử dụng

(local) hoặc localhost nếu SQL Server trên cùng một máy đang

chạy ứng dụng Nếu bạn sử dụng các thể hiện tên của SQL Server, thì tham số nên chứa tên của máy tính theo sau là đấu gạch chéo ngược và tiếp đó là thể hiện tên của SQL Server

Database Là tên của database mà ta muốn connect tới

User ID

Username sử dụng để connect tới database account với user ID này phải tồn tại trong SQL Server và được phép truy cập đến

database chỉ định

Password Là password của user đã chỉ định

Chuỗi kết nối này sẽ connects tới SQL Server database Tham số Server chỉ định là database nằm trên máy AA Tham số Database chỉ định database mà ta muốn truy cập, trong trường hợp này là database QLDiemSV Cuối cùng, các tham số User

ID và Password chỉ định User ID và password của user định nghĩa trên database Ta thấy rằng, mỗi một tham số được gán một giá trị qua dấu =, và mỗi cặp parameter - value được phân cách nhau nhau bởi dấu chấm ;

SqlConnection(“Server=localhost;Database=pubs;” & _ “User ID=sa;Password=vbdotnet;”)

Ta nên khai báo chuỗi kết nối trong tệp web.config như sau:

Dim strConn As String

'Lấy chuỗi kết nối CSDL

strConn = ConfigurationManager.AppSettings("Conn")

Dim myConn As New SqlConnection(strConn)

Trang 32

("MyConn").ToString để lấy chuỗi kết nối đó:

Dim strConn As String

'Lấy chuỗi kết nối CSDL

strConn=ConfigurationManager.ConnectionStrings("MyConn").ToString

Dim myConn As New SqlConnection(strConn)

Một số phương thức thường dùng của Connection

objConnection.Open(): mở kết nối đến cơ sở dữ liệu cùng với các thông tin đã được khai báo trong ConnectionString

objConnection.Close(): Đóng kết nối với nguồn dữ liệu Sử dụng phương thức này để đóng Connection đang mở

objConnection.Dispose(): Xóa mọi tài nguyên liên quan đến Connection trên vùng nhớ

3.2.2 Class SQLCommand

Lớp SqlCommand đại diện cho các câu lệnh SQL để thực hiện truy vấn dữ liệu lưu trữ Các câu lệnh là truy vấn select, insert, update, hoặc delete,.v.v… Có thể là các chuỗi SQL hoặc gọi một stored procedure Truy vấn được thực hiện có thể chứa các tham số hoặc không chứa các tham số

Bảng Các thành phần của SqlCommand

CommandTimeout Lấy ra hoặc thiết lập thời gian chờ trong khi đang thực thi lệnh

trước khi kết thúc

Connection Lấy ra hoặc thiết lập SqlConnection được dùng bởi thể hiện

này của SqlCommand

Cancel() Hủy bỏ việc thực thi của một lệnh

ExecuteReader() Thực hiện câu lệnh trong CommandText Kết quả trả về là

DataReader của trình cung cấp dữ liệu

ExecuteNonQuery() Thực hiện câu lệnh trong CommandText và không có kết quả

trả về

ExecuteScalar() Thực hiện câu lệnh trong CommandText, kết quả trả về là một

giá trị đơn

ExecuteXmlReader() Phương thức này trả về một System.Xml.XmlReader mà cho

phép xử lý luồng đầu vào của XML Parameters Lấy ra tập hợp các kiểu của SqlParameter được dùng cho một

truy vấn có tham số

Prepare() Tạo một phiên bản được chuẩn bị (hoặc được biên dịch) của

lệnh trên nguồn dữ liệu

Khai báo:

Dim objCommand As SqlCommand = New SqlCommand()

Hoặc:

Trang 33

Dim objCommand As SqlCommand = New SqlCommand(strSQL, objConnection)

Trong trường hợp này, chuỗi truy vấn strSQL và objConnection phải được khai báo hoặc đã được gọi ở thủ tục nào trước đó

CommandText Chỉ định chuỗi Sql hoặc stored

procedure sẽ được thực hiện

‘ Khai báo biến

Dim objConnection As New SqlConnection _ ("server=AA;database=QLDiemSV;user

- Phương thức AddWithValue thừa nhận tên của tham số và giá trị ta muốn

truyền cho tham số Trong trường hợp này, ta sử dụng thuộc tính Text của đối tượng Text box trên cùng một Form

- Phương thức Add được sử dụng để khai báo tham số và truyền giá trị cho tham số sử dụng thuộc tính Value của tham số đó

Trang 34

Dim objConnection As New SqlConnection _ ("server=AA;database=QLDiemSV;user

id=sa;password=pass2008")

Dim objCommand As SqlCommand = New SqlCommand()

objCommand.Connection = objConnection objCommand.CommandText = "INSERT INTO

Ví dụ:

' Khai báo các biến

Dim objCommand As SqlCommand = New SqlCommand()

Dim objDataReader As SqlDataReader

objConnection.Open()

objCommand.Connection = objConnection

objCommand.CommandText = "Select MaLop, TenLop From Lop"

' Execute the SqlCommand object to insert the new data objDataReader = objCommand.ExecuteReader

cboMaLop.Items.Clear()

Do While (objDataReader.Read())

cboMaLop.Items.Add(objDataReader.Item(0)) Loop

objConnection.Close()

* Phương thức ExecuteScalar

Là phương thức trả về một giá trị vô hướng

cmd.CommandText = " Select OrderID From Orders " & _

"Where(MemberName=@MemberName) and

(OrderDate=@OrderDate) and (CustomerName=@CustomerName)and

(Address=@Address) and (County=@County) and (PostCode=@PostCode) and (Country=@Country) and (SubTotal=@SubTotal) and (Discount=@Discount) and ( Total=@Total)"

Dim OrderID As Integer

OrderID = Convert.ToInt32(cmd.ExecuteScalar())

3.2.3 Class SQLDataAdapter

DataAdapter sử dụng các đối tượng command và connection để truy xuất và

điều khiển data source

Trang 35

SelectCommand Chứa nội dung lệnh truy xuất các mẫu tin từ nguồn dữ liệu

DelectCommand Chứa nội dung lệnh hủy các mẫu tin từ nguồn dữ liệu

InsertCommand Chứa nội dung lệnh chèn các mẫu tin mới vào nguồn dữ liệu UpdateCommand Chứa nội dung lệnh cập nhật các mẫu tin từ nguồn dữ liệu

Phương thức Fill

Ta dùng phương thức Fill để đưa dữ liệu vào đối tượng DataSet Cần phải khởi tạo đối tượng DataSet trước khi sử dụng nó Để sử dụng đối tượng DataSet trong project của ta, ta phải add một tham chiếu tới System.Xml

- Fill (<datatable>): Đổ dữ liệu vào DataTable có sẵn

- Fill (<dataset>): Đổ dữ liệu vào DataSet có sẵn Dữ liệu được lấy về DataSet dưới dạng DataTable Với tên mặc định là table1, table2,

- Fill (<dataset>, <tên datatable>): Đổ dữ liệu vào DataSet cho bảng <tên datatable>, nếu chưa có bảng này, bảng <tên datatable> sẽ được tạo ra (cách này thường được sử dụng)

Đối số DataSet chỉ định một đối tượng DataSet hợp lệ mà dữ liệu được lưu trữ

ở trong đó Chú ý rằng, một DataSet có thể chứa nhiều bảng, thường tốt nhất là sử dụng tên của các bảng nơi mà dữ liệu trong database đến Nó giúp cho văn bản code của ta và làm cho code dễ bảo trì

Ví dụ:

Đoạn code sau gọi phương thức Fill Chuỗi “authors” được chỉ định là đối số string Nó là tên ta muốn sử dụng khi đang thao tác trong các phiên bản nhớ của bảng này; nó cũng là tên của bảng trong data source

‘ Declare a SqlDataAdapter object

Dim objDataAdapter As New SqlDataAdapter()

‘Create an instance of a new select command object objDataAdapter.SelectCommand

‘ Fill the DataSet object with data

objDataAdapter.Fill(objDataSet, “DSSV”)

Phương thức Fill sử dụng thuộc tính SelectCommand.Connection để connect tới database Nếu connection đã được mở, data adapter sẽ sử dụng nó để thực hiện SelectCommand Và nếu như connection đã đóng thì data adapter sẽ mở nó, thực

Trang 36

hiện SelectCommand, và sau đó đóng trở lại Bây giờ ta đã có dữ liệu trong bộ nhớ,

và có thể bắt đầu thao tác mà không phụ thuộc vào data source

3.2.4 Class DataSet

- Là lớp dùng để thao tác với dữ liệu, được xem như một kho chứa các table

Dữ liệu có thể cập nhật trong các bảng này và khi muốn cập nhật vào cơ sở dữ liệu thì DataSet sẽ thực hiện việc cập nhật thông qua DataAdapter Vì vậy nó được xem là mô hình dữ liệu phi kết nối

- Các bảng trong DataSet có thể được tạo thành từ lớp DataTable hoặc do DataAdapter Fill vào

- Một DataSet có thể lưu trữ nhiều bảng

Khai báo: Dim objDataSet = New DataSet()

Các phương thức quan trọng của DataSet:

(<tênbảng>) CanRemove True: nếu có thể xóa bảng objDataSet.Tables.CanRemove(

<tênbảng>) Clear Xóa tất cả các bảng objDataSet.Tables.Clea()

Clear Xóa toàn bộ nội dung trong DataSet objDataSet Clear()

DataTable:

Khai báo: Dim objDataTable = New DataTable()

Là đối tượng chứa dữ liệu trên Dataset Được tạo lập từ DataRows và DataColumns

- DataColumns: tập hợp các cột có trong DataTable

Khai báo:

Dim tencot = New DataColumns(<tên cột>, <kiểu dữ liêu>)

Trong đó: <kiểu dữ liêu> là kiểu dữ liệu của cột, được khai báo thông qua cú pháp System.Type.GetType(“System.Tenkieu”)

Đưa cột vào bảng: tenbang.Columns.add(tencot)

- DataRows: tập hợp các dòng dữ liệu của bảng Mọi tham chiếu dòng đều thông qua tập hợp này

Trang 37

ong>)

số>)

Clear Xóa toàn bộ dòng dữ liệu của bảng Rows.Clear()

Dim objDataView As DataView = tenbang.DefaultView

Các thuộc tính và phương thức quan trọng của DataView

Find

Tìm kiếm, trả về vị trí dòng thỏa điều kiện, tìm theo cột nào phải sắp xếp dữ liệu theo cột đó

Dim vitri as Integer objDataView.Sort = “Tencot”

Dim myDataSet As New DataSet() Dim myDataview As DataView

Dim strConn, strSQL As String

strConn = ConfigurationManager.AppSettings("Conn")

Dim myConn As New SqlConnection(strConn)

strSQL = "SELECT * From Accounts"

' Khai báo đối tượng SqlDataAdapter

Dim myDataAdapter As New SqlDataAdapter()

myDataAdapter.SelectCommand = New SqlCommand()

Trang 38

<form id="form1" runat="server">

<asp:DataGrid ID="dgrResult" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None">

Thể hiện GidView dùng Dataset.Table </span>

<span style="color: #ff00ff"></span><br />

<asp:GridView ID="MyGridView" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">

</asp:GridView>

<span style="color: #0000ff">

Thể hiện Đối tượng DataView<br /> </span>

<asp:GridView ID="grvMyDataview" runat="server"

CellPadding="4" ForeColor="#333333" GridLines="None" >

Ngày đăng: 17/01/2022, 12:08

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w