Giáo trình Lập trình trên nền web (Phần 1)

MỤC LỤC  
LỜI NÓI ĐẦU  
Ngày nay việc sử dụng Internet và các dịch vụ trên Internet là một phần tất yếu của  
cuộc sống. Công nghệ Internet và các ứng dụng phát triển trên nền Web và Internet đã và  
đang làm cho đời sống của chung ta thay đổi. Internet là một nguồn thông tin quý giá  
phục vụ cho việc học tập, nghiên cứu, kinh doanh, giải trí. Vì vậy ngày càng có nhiều ứng  
dụng trên Internet sử dụng giao diện Web. Các công nghệ phát triển trên Internet ngày  
một hoàn thiện.  
Trên cơ sở đó, môn học Lập trình trên nền Web đã đƣợc đƣa vào giảng dạy và  
nghiên cứu tại các khoa, ngành tin học, toán tin, thƣơng mại điện tử hay các ngành có liên  
quan khác trong các trƣờng đại học. Môn học này sẽ là tiền đề cung cấp cho sinh viên và  
các nhà nghiên cứu các lý thuyết từ cơ sở cho đến ứng dụng nhằm xây dựng và xử lý  
thông tin dƣới dạng trang Web, nhờ đó cho phép họ tiếp cận dễ dàng hơn với các kỹ thuật  
lập trình hiệu quả các ứng dụng trên nền Web và Internet.  
Tập bài giảng này nghiên cứu về công nghệ phổ biến và tiên tiến nhất đƣợc dùng  
đề tạo các ứng dụng chạy trên nền Web của MicroSoft là ASP.NET, ngôn ngữ lập trình  
C#, truy xuất dữ liệu qua ADO.NET và Web Services đáp ứng đƣợc việc học tập và  
nghiên cứu của sinh viên Đại học, Cao đẳng ngành Công nghệ thông tin và Khoa học máy  
tính Trƣờng Đại học Sƣ phạm kỹ thuật Nam Định.  
Tập bài giảng gồm 5 chƣơng  
Chƣơng 1: Tổng quan về ASP.NET  
Chƣơng 2: Ngôn ngữ lập trình C#  
Chƣơng 3: Làm việc với Web Form  
Chƣơng 4: Truy nhập cơ sở dữ liệu  
Chƣơng 5: Web Services  
Nội dung các chƣơng cung cấp kiến thức về thiết kế và lập trình xử lý dữ liệu Web  
dựa trên công cụ Visul Studio .Net. Sau mỗi phần có các ví dụ giúp sinh viên dễ tiếp cận  
và nắm bắt vấn đề. Cuối mỗi chƣơng đều có bài tập giúp cho sinh viên ôn tập và hệ thống  
kiến thức môn học.  
Trong quá trình biên soạn nhóm chúng tôi đã bám sát chƣơng trình môn học đƣợc  
nhà trƣờng ban hành, đã cố gắng thể hiện nội dung cơ bản, hiện đại gắn gắn với yêu cầu  
thực tế. Tuy nhiên do khả năng có hạn, hạn chế về thời gian nên không tránh khỏi sai sót.  
Rất mong nhận đƣợc sự đóng góp chân thành của đồng nghiệp và bạn đọc để tập bài  
giảng ngày càng hoàn thiện hơn.  
NHÓM TÁC GIẢ  
 
CHƢƠNG 1: TỔNG QUAN VỀ ASP.NET  
1.1. Giới thiệu tổng quan về công nghệ .NET  
1.1.1. Sự ra đời của .NET  
Trong lĩnh vực phát triển phần mềm có rất nhiều ngôn ngữ lâp trình đƣợc sử dụng  
để phát triển (nhƣ Delphi, Ada, Cobol, Fortran, Basic, LISP, Prolog, Foxpro, Java, Pascal,  
C/C++, VB.NET, VC++, C#...). Mỗi ngôn ngữ đều có những ƣu và nhƣợc điểm riêng.  
Những ƣu điểm có tính đặc thù của từng ngôn ngữ là điều đã đƣợc khẳng định.  
Tuy nhiên, rất khó để có thể tận dụng đƣợc sức mạnh của tất cả các ngôn ngữ lập trình  
trong một dự án phần mềm, chẳng hạn không thể hoặc rất khó khăn để viết một ứng dụng  
có sử dụng đồng thời cả ngôn ngữ Visual Basic và Java hay Foxpro với Delphi v.v… Nói  
cách khác, việc “liên thông” giữa các ngôn ngữ là gần nhƣ không thể.  
Cũng do sự khác biệt giữa các ngôn ngữ lập trình mà việc tiếp cận hay chuyển đổi  
sang ngôn ngữ lập trình mới sẽ tốn rất nhiều thời gian. Vì vậy, khi các dự án sử dụng  
ngôn ngữ lập trình khác nhau thì chi phí cho chuyển đổi sẽ là rất lớn gây lãng phí thời  
gian không cần thiết và chất lƣợng phần mềm chắc chắn không cao.  
Từ những hạn chế trong quá trình phát triển phần mềm nhƣ đã nêu, đòi hỏi phải có  
một cách tiếp cận sao cho tối ƣu nhất, vừa đảm bảo tốn ít chi phí chuyển đổi vừa đảm bảo  
nhiều ngƣời có thể tham gia cùng một dự án mà không nhất thiết phải viết trên cùng một  
ngôn ngữ lập trình, đồng thời ứng dụng phải hoạt động tốt trong môi trƣờng mạng  
Internet. Đó chính là lý do để Microsoft cho ra công nghệ phát triển phần mềm mới .NET.  
1.1.2. .NET Framework  
Thông thƣờng, mỗi ngôn ngữ lập trình đều có một tập các thƣ viện riêng, chẳng  
hạn: VC++ thì có thƣ viện chính là msvcrt.dll; Visual Basic thì có svbvm60.dll …Các  
thƣ viện này chứa các hàm, thủ tục cơ bản của mỗi ngôn ngữ. Tất cả đều có ý nghĩa  
logic giống nhau nhƣng về cách sử dụng hay cú pháp thì hầu nhƣ là khác nhau.  
Ý tƣởng của Microsoft là không xây dựng một tập thƣ viện riêng biệt cho từng  
ngôn ngữ lập trình mà sẽ xây dựng một bộ thƣ viện dùng chung. Tập thƣ viện dùng chung  
này hình thành nên một bộ khung (Framework). Bộ Khung này thực chất là một tập các  
thƣ viện đƣợc xây dựng sẵn, đáp ứng mọi nhu cầu phát triển các ứng dụng Desktop,  
Network, Mobile, Web…  
       
Hình 1.1. Mô hình xây dựng phần mềm bằng ngôn ngữ truyền thống  
Các thành phần và chức năng chính trong .NET Framework.  
Common Language Runtime (trình thực thi ngôn ngữ chung): Sau khi ứng dụng  
đƣợc biên dịch ra file “exe”. Nội dung của file exe này tuân theo một chuẩn/ngôn ngữ  
chung, dù là viết bằng C# hay VB.NET. Ngôn ngữ này gọi là ngôn ngữ chung), tiếp  
theo để file exe trung gian này có thể chạy đƣợc trên máy hiện hành thì cần phải đƣợc  
biên dịch ra mã máy tƣơng ứng. Việc biên dịch và chạy đƣợc là nhờ chƣơng trình thực  
thi ngôn ngữ chung – CLR (Common Language Runtime).  
Hình 1.2. Kiến trúc của .NET Framework  
Base Class Library: Là tập các thƣ viện chứa các lớp cơ bản để sử dụng trong tất  
cả các ngôn ngữ .NET. Ví dụ các lớp xử lý xâu, xử lý toán học…  
ADO.NET: Là tập các thƣ viện chuyên dành cho thao tác với cơ sở dữ liệu.  
ASP.NET: Các thƣ viện dành cho phát triển các ứng dụng Web (Web Form).  
Windows Forms: Các thƣ viện dành cho phát triển các ứng dụng Windows  
Common Language Specification: Phần này có nhiệm vụ đặc tả ngôn ngữ chung  
để các chƣơng trình viết trên các ngôn ngữ lập trình khác nhau phải tuân theo. Nói cách  
khác, biên dịch các chƣơng trình viết trên các ngôn ngữ lập trình khác nhau về một ngôn  
ngữ thống nhất chung (Common Language).  
Các ngôn ngữ lập trình.  
Hình 1.3. Mô hình biên dịch và thực thi chƣơng trình ứng dụng .NET  
1.1.3. Ƣu điểm chính của .NET Framework  
- Tất cả các ngôn ngữ đều thừa hƣởng một thƣ viện thống nhất. Khi sửa chữa hay  
nâng cấp thƣ viện này thì chỉ phải thực hiện một lần.  
- Cách thức phát triển ứng dụng nhất quán và tƣơng tự nhau giữa các ngôn ngữ lập  
trình. Có thể chuyển đổi sang ngôn ngữ lập trình .NET khác nhau một cách dễ dàng.  
- Viết các ứng dụng Web Form không khác nhiều so với ứng dụng Win Form.  
- Cung cấp một tập thƣ viện truy xuất CSDL thống nhất (ADO.NET) cho mọi ngôn  
ngữ .NET.  
- Hỗ trợ cơ chế “Write one – Run everywhere” (ciết một lần chạy mọi nơi). Một ứng  
dụng viết bằng .NET có thể chạy trên bất cứ hệ điều hành nào mà  
không cần phải sửa lại code, miễn là máy đó có cài .NET framework.  
- Cung cấp hệ thống kiểu chung (Common Type), do vậy đảm bảo tính thống nhất  
về kiểu dữ liệu giữa các ngôn ngữ lập trình.  
- Cho phép sử dụng nhiều ngôn ngữ lập trình trong cùng một dự án.  
- Kết thừa và sử dụng chéo giữa các ngôn ngữ lập trình dễ dàng nhƣ trên cùng một  
ngôn ngữ (có thể viết một class trên C#, sau đó kế thừa trong VB.NET và ngƣợc lại).  
 
- Việc triển khai (Deploy) các ứng dụng dễ dàng. Chỉ cần Copy-and-run (copy là  
chạy). Không cần cài đặt và tránh đƣợc “các lỗi DLL” nhƣ trƣớc đây.  
1.2. Giới thiệu về ASP.NET  
- ASP.NET là công nghệ phát triển các ứng dụng trên nền Web, thế hệ kế tiếp của  
ASP (Active Server Page – Trang Web đƣợc xử lý bên phía máy chủ). ASP.NET là  
một thành phần nội tại (có sẵn) của .NET Framework. Vì vậy nó tận dụng đƣợc sức  
mạnh của .NET Framework. ASP.NET có một số ƣu điểm chính:  
- Có thể sử dụng để phát triển các ứng dụng Web đủ mọi kích cỡ, từ ứng dụng nhỏ  
nhất cho đến ứng dụng toàn doanh nghiệp (Enterprise).  
- Ứng dụng viết bằng ASP.NET dễ dàng tƣơng thích với nhiều loại trình duyệt khác  
nhau. Nhà phát triển không cần phải quan tâm nhiều đến trình duyệt nào đƣợc sử dụng để  
duyệt Website, điều này sẽ đƣợc framework tự render ra mã tƣơng ứng.  
- Khi sử dụng bộ IDE của Visual Studio, cách thức lập trình sẽ giống nhƣ lập trình  
Win Form.  
- Truy xuất dữ liệu bằng công nghệ ADO.NET có sẵn của .NET Framework.  
- Chạy ứng dụng cực nhanh bởi cơ chế biên dịch và Cached.  
- Có thể tăng tốc ứng dụng bằng cách Cache các điều khiển, các trang.  
- Bảo mật vƣợt trội.  
- Tốn ít dòng lệnh hơn so với ASP/PHP/Perl khi thực hiện cùng một công việc.  
- Dễ dàng bảo trì và dễ đọc hơn bởi Code và Giao diện đƣợc tách biệt. Điều này  
cũng giúp cho tính chuyên biệt hóa cao hơn (một ngƣời chỉ lo code phần xử lý nghiệp vụ,  
ngƣời khác thì chỉ lo code phần giao diện v.v…).  
- ASP.NET sử dụng ngôn ngữ lập trình VB.NET hoặc C# để phát triển ứng dụng.  
1.3. Cài đặt Visual Studio.NET  
1.3.1. Các phiên bản .NET  
Có nhiều phiên bản .NET Framework khác nhau đƣợc phát hành qua từng giai đoạn.  
- .NET Framework 1.0 phát hành vào năm 2002  
- .NET Framework 1.1 phát hành vào năm 2003  
- .NET Framework 2.0 phát hành vào năm 2005  
- .NET Framework 3.0 phát hành vào năm 2006  
- .NET Framework 3.5 phát hành vào năm 2007  
- .NET Framework 4 phát hành trong năm 2010  
- .NET Framework 4.5 phát hành vào năm 2012  
1.3.2. Cài đặt Visual Studio.NET  
       
Việc cài đặt các phiên bản Visual Studio.Net có nhiều lựa chọn khác nhau về cơ  
bản ta tiến hành nhƣ sau:  
- Chuẩn bị đĩa chƣơng trình Visual Studio.Net và mã bản quyền sử dụng phần mềm  
- Đọc tệp tin yêu cầu phần cứng trƣớc khi cài đặt.  
- Chạy tệp tin setup.exe làm theo hƣớng đẫn trên màn hình trong quá trình cài đặt.  
1.3.3. Giao diện Visual Studio.NET  
Visual Studio sử dụng IDE chung cho toàn bộ ngôn ngữ lập trình (ASP.NET,  
VB.NET, C#,…). Điều này đảm bảo tính nhất quán cho các ngôn ngữ trên nền .NET.  
Hình 1.4. Giao diện chính của môi trƣờng phát triển  
- Tab Design để hiển thị trang Web ở chế độ Design, tức là cho phép sửa chữa nội  
dung trang Web trực quan.  
trang chế  
độ Design  
Hình 1.5. Mở  
ở
- Tab Source: Mở trang ở chế độ mã nguồn HTML. Tại đây ngƣời dùng có thể soạn  
thảo trực tiếp các thẻ HTML.  
 
Hình 1.6. Mở trang ở chế độ Source  
- Tab Split: Cho phép xem trang Web đồng thời ở cả hai chế độ.  
Hình 1.7. Mở trang ở 2 chế độ Design và Source  
Chuyển chế độ Design  
Chuyển chế độ Code  
Copy website lên server  
Hình 1.8. Mở cửa sổ soạn Code  
- Ngoài thao tác trực tiếp thông qua hệ thống menu, nút lệnh, ngƣời dùng còn có  
thể sử dụng tổ hợp các phím tắt. Ví dụ: Shift+F7 để xem ở chế độ Design, F7 xem ở chế  
độ Code, F4 Focus tới Properties….  
Tool bar  
Menu bar  
Vùng duyện các web  
form và code fille  
Các điều khiển  
Các chế độ xem  
uộc tính của  
điều khiển  
Hình 1.9. Giao diện IDE của Visual Studio  
1.4. Xây dựng ứng dụng Web  
1.4.1. Tạo mới ứng dụng Web  
Vào menu File -> New Website hoặc biểu tƣợng  
trên thanh công cụ cửa sổ  
New Website xuất hiện.  
   
Hình 1.10. Các thành phần để tạo mới ứng dụng web  
1.4.2. Lƣu ứng dụng Web  
- Nhấn Ctrl-S để lƣu trang hiện tại  
- Nhấn Ctrl-Shift-S để lƣu toàn bộ các trang.  
1.4.3. Chạy ứng dụng Web  
Đối với ASP.NET, toàn bộ ứng dụng Web có thể biên dịch thành file nhị phân để  
chạy. Tuy nhiên ASP.NET cũng cho phép ngƣời dùng chạy từng trang riêng biệt.  
- Nhấn F5 (Hoặc biểu tƣợng  
trên thanh công cụ) để chạy ứng dụng và cho phép  
Debug trên trình duyệt.  
- Nhấn Ctrl-F5 để chạy ứng dụng nhƣng không cho Debug trên trình duyệt.  
- Trong trƣờng hợp muốn chạy chƣơng trình và gỡ rối ở mức dòng lệnh/ thủ tục thì  
có thể nhấn F8, Shift-F8.  
- Ngƣời dùng có thể chạy (Browse) trang Web bất kỳ bằng cách chọn, sau đó click  
chuột phải và chọn mục View In Browser (hoặc nhấn tổ hợp phím Ctrl- Shift-W). Trong  
trƣờng hợp có nhiều trình duyệt trong máy thì có thể chọn trình duyệt mặc định khi View  
In Browser bằng cách click chuột phải lên trang và chọn Browse With nhƣ hình dƣới.  
   
Hình 1.11. Chọn trình duyệt  
1.5. Bài tập  
1. Khi .NET ra đời đã đem lại những thuận lợi gì cho ngƣời lập trình ứng dụng?  
2. Chỉ ra điểm giống và khác nhau giữa xây dựng phần mềm bằng ngôn ngữ truyền  
thống và .NET.  
3. Trình bày các thành phần trong kiến trúc của .NET Framework.  
4. Nêu các ƣu điểm chính của .NET Framework.  
5. Kể tên các phiên bản .NET hiện có.  
6. Nêu các bƣớc cài đặt Visual Studio.NET.  
7. Kể tên và nêu ý nghĩa các thành phần trong giao diện Visual Studio.NET.  
8. Nêu các bƣớc xây dựng ứng dụng Web.  
 
CHƢƠNG 2: NGÔN NGỮ LẬP TRÌNH C#  
2.1. Giới thiệu về ngôn ngữ lập trình C#  
Ngôn ngữ C# là một ngôn ngữ đƣợc dẫn xuất từ C và C++, nhƣng nó đƣợc tạo từ  
nền tảng phát triển hơn. Microsoft thêm vào những đặc tính mới để làm cho ngôn ngữ  
này dễ sử dụng hơn, nhiều trong số những đặc tính này khá giống với những đặc tính có  
trong ngôn ngữ Java. Nó có một số đặc điểm cơ bản sau:  
- C# là ngôn ngữ đơn giản  
Trong C# không có sự phức tạp của những ngôn ngữ nhƣ Java và C++, bao gồm  
việc loại bỏ macro, template, đa kế thừa và lớp cơ sở ảo (virtual base class).  
Ngôn ngữ C# đơn giản nó dựa trên nền tảng C và C++ bởi C# khá giống về cú  
pháp, biểu thức, toán tử và những chức năng khác đƣợc lấy trực tiếp từ ngôn ngữ C và  
C++, nhƣng đã đƣợc cải tiến để làm cho ngôn ngữ đơn giản hơn. Một trong các cải tiến là  
loại bỏ các dƣ thừa, thêm những cú pháp thay đổi.  
- C# là ngôn ngữ hiện đại  
Những đặc tính nhƣ xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu  
mở rộng và bảo mật mã nguồn là những đặc tính đƣợc mong đợi trong một ngôn ngữ  
hiện đại. C# chứa tất cả những đặc tính trên.  
- C# là ngôn ngữ hƣớng đối tƣợng  
Những đặc tính nhƣ xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu  
mở rộng và bảo mật mã nguồn là những đặc tính đƣợc mong đợi trong một ngôn ngữ  
hiện đại. C# chứa tất cả những đặc tính trên.  
- C# là ngôn ngữ mạnh mẽ và mềm dẻo  
Ngôn ngữ C# đƣợc sử dụng cho nhiều công việc khác nhau nhƣ là tạo ra ứng  
dụng xử lý văn bản, ứng dụng đồ họa, hay những trình biên dịch cho các ngôn ngữ khác.  
- C# là ngôn ngữ ít từ khóa  
C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa đƣợc sử  
dụng để mô tả thông tin.  
Bảng sau liệt kê các từ khóa của ngôn ngữ C#  
abstract  
as  
default  
delegate  
foreach  
goto  
object  
operator  
sizeof  
unsafe  
ushort  
stackalloc  
static  
base  
bool  
do  
if  
out  
using  
double  
implicit  
override  
string  
virtual  
   
break  
byte  
else  
in  
params  
private  
protected  
public  
readonly  
ref  
struct  
switch  
this  
volatile  
void  
enum  
event  
explicit  
extern  
false  
int  
case  
interface  
internal  
is  
while  
catch  
throw  
true  
char  
checked  
class  
lock  
try  
finally  
fixed  
float  
long  
return  
sbyte  
typeof  
uint  
const  
namespace  
new  
continue  
decimal  
sealed  
short  
ulong  
unchecked  
for  
null  
- C# là ngôn ngữ hƣớng module  
Mã nguồn C# có thể đƣợc viết trong những phần đƣợc gọi là những lớp, những  
lớp này chứa các phƣơng thức thành viên của nó. Những lớp và phƣơng thức có thể  
đƣợc sử dụng lại trong ứng dụng hay các chƣơng trình khác. Bằng cách truyền các mẫu  
thông tin đến những lớp hay phƣơng thức để tạo ra những mã nguồn dùng lại có hiệu quả.  
2.2. Cấu trúc một chƣơng trình C#  
Cách tạo một project trong C#: New >> Project >> Visual C# >> Windows >>  
Console Application >> đặt tên và nơi lƣu; nếu check vào create directory for solution thì  
Visual Studio sẽ tạo ra thƣ mục chứa project. Một chƣơng trình C# đơn giản:  
using System;  
using System.Collections.Generic;  
using System.Text;  
namespace Hello  
{
class Program  
{
static void Main(string[] args)  
{
Console.WriteLine("Xin chao");  
Console.Read();  
}
}
}
2.3. Các kiểu dữ liệu  
C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu, một ngôn ngữ mạnh về kiểu dữ liệu  
là phải khai báo kiểu của mỗi đối tƣợng khi tạo (kiểu số nguyên, số thực, kiểu chuỗi, kiểu  
   
điều khiển...) và trình biên dịch giúp cho ngƣời lập trình không bị lỗi khi chỉ cho phép  
một loại kiểu dữ liệu có thể đƣợc gán cho các kiểu dữ liệu khác. Kiểu dữ liệu của một đối  
tƣợng là một tín hiệu để trình biên dịch nhận biết kích thƣớc của một đối tƣợng (kiểu int  
có kích thƣớc là 4 byte) và khả năng của nó (nhƣ một đối tƣợng button có thể vẽ, phản  
ứng khi nhấn,...).  
Tƣơng tự nhƣ C++ hay Java, C# chia thành hai tập hợp kiểu dữ liệu chính: Kiểu  
xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho ngƣời lập trình và kiểu đƣợc ngƣời  
dùng định nghĩa (user-defined) do ngƣời lập trình tạo ra.  
2.3.1. Kiểu dữ liệu xây dựng sẵn  
Ngôn ngữ C# đƣa ra các kiểu dữ liệu xây dựng sẵn phù hợp với một ngôn ngữ  
lập trình hiện đại, mỗi kiểu dữ liệu đƣợc ánh xạ đến một kiểu dữ liệu đƣợc hỗ trợ bởi hệ  
thống xác nhận ngôn ngữ chung (Common Language Specification: CLS) trong MS.NET.  
Việc ánh xạ các kiểu dữ liệu nguyên thuỷ của C# đến các kiểu dữ liệu của .NET sẽ đảm  
bảo các đối tƣợng đƣợc tạo ra trong C# có thể đƣợc sử dụng đồng thời với các đối tƣợng  
đƣợc tạo bởi bất cứ ngôn ngữ khác đƣợc biên dịch bởi .NET, nhƣ VB.NET.  
Mỗi kiểu dữ liệu có một sự xác nhận và kích thƣớc không thay đổi, không giống  
nhƣ C++, int trong C# luôn có kích thƣớc là 4 byte bởi vì nó đƣợc ánh xạ từ kiểu Int32  
trong .NET.  
Bảng sau sẽ mô tả một số các kiểu dữ liệu đƣợc xây dựng sẵn  
Kiểu C# Số byte  
Kiểu .NET  
Byte  
Mô tả  
byte  
char  
bool  
sbyte  
short  
1
2
1
1
2
Số nguyên dƣơng không dấu từ 0-255  
Ký tự Unicode  
Char  
Boolean  
Sbyte  
Int16  
Giá trị logic true/ false  
Số nguyên có dấu ( từ -128 đến 127)  
Số nguyên có dấu giá trị từ -32768 đến 32767.  
ushort  
int  
2
4
Uịnt16  
Số nguyên không dấu 0 – 65.535  
Int32  
Số nguyên có dấu –2.147.483.647 và  
2.147.483.647  
uint  
4
4
Uint32  
Single  
Số nguyên không dấu 0 – 4.294.967.295  
Kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E-  
38 đến 3,4E+38, với 7 chữ số có nghĩa..  
float  
 
double  
8
8
Double  
Kiểu dấu chấm động có độ chính xác gấp đôi, giá  
trị xấp xỉ từ 1,7E-308 đến 1,7E+308,  
với 15,16 chữ số có nghĩa.  
decimal  
Decimal  
Có độ chính xác đến 28 con số và giá trị thập  
phân, đƣợc dùng trong tính toán tài chính, kiểu  
này đòi hỏi phải có hậu tố “m” hay “M”  
theo sau giá trị.  
long  
8
8
Int64  
Kiểu số nguyên có dấu có giá trị trong khoảng :  
-9.223.370.036.854.775.808 đến  
9.223.372.036.854.775.807  
ulong  
Uint64  
Số nguyên không dấu từ 0 đến  
0xffffffffffffffff  
2.3.2. Chọn kiểu dữ liệu  
Thông thƣờng để chọn một kiểu dữ liệu nguyên để sử dụng nhƣ short, int hay long  
thƣờng dựa vào độ lớn của giá trị muốn sử dụng. Ví dụ, một biến ushort có thể lƣu giữ giá  
trịtừ 0 đến 65.535, trong khi biến ulong có thể lƣu giữ giá trị từ 0 đến 4.294.967.295, do  
đó tùy vào miền giá trị của phạm vi sử dụng biến mà chọn các kiểu dữ liệu thích hợp nhất.  
Kiểu dữ liệu int thƣờng đƣợc sử dụng nhiều nhất trong lập trình vì với kích thƣớc 4  
byte của nó cũng đủ để lƣu các giá trị nguyên cần thiết.  
Kiểu float, double và decimal đƣa ra nhiều mức độ khác nhau về kích thƣớc  
cũng nhƣ độ chính xác. Với thao tác trên các phân số nhỏ thì kiểu float là thích hợp  
nhất. Tuy nhiên lƣu ý rằng trình biên dịch luôn luôn hiểu bất cứ một số thực nào cũng là  
một số kiểu double trừ khi khai báo rõ ràng. Để gán một số kiểu float thì số phải có ký tự f  
theo sau.  
float soFloat = 24f;  
Kiểu dữ liệu ký tự thể hiện các ký tự Unicode, bao gồm các ký tự đơn giản, ký tự  
theo mã Unicode và các ký tự thoát khác đƣợc bao trong những dấu nháy đơn. Ví dụ, A  
là một ký tự đơn giản trong khi \u0041 là một ký tự Unicode. Ký tự thoát là những ký tự  
đặc biệt bao gồm hai ký tự liên tiếp trong đó ký tự đầu tiên là dấu chéo „\‟. Ví dụ, \t là  
dấu tab. Bảng sau trình bày các ký tự đặc biệt.  
Ký tự  
Ý nghĩa  
Dấu nháy đơn „  
Dấu nháy kép  
\‟  
\”  
 
\\  
Dấu chéo  
\0  
Ký tự null  
Alert  
\a  
\b  
Backspace  
Sang trang form feed  
Dòng mới  
Đầu dòng  
Tab ngang  
Tab dọc  
\f  
\n  
\r  
\t  
\v  
2.3.3. Chuyển đổi kiểu dữ liệu  
Những đối tƣợng của một kiểu dữ liệu này có thể đƣợc chuyển sang những đối  
tƣợng của một kiểu dữ liệu khác thông qua cơ chế chuyển đổi tƣờng minh hay ngầm  
định. Chuyển đổi ngầm định đƣợc thực hiện một cách tự động, trình biên dịch sẽ thực  
hiện công việc này. Còn chuyển đổi tƣờng minh diễn ra khi gán ép một giá trị cho kiểu  
dữ liệu khác.  
Việc chuyển đổi giá trị ngầm định đƣợc thực hiện một cách tự động và đảm bảo là  
không mất thông tin. Ví dụ, có thể gán ngầm định một số kiểu short (2 byte) vào một  
số kiểu int (4 byte) một cách ngầm định. Sau khi gán hoàn toàn không mất dữ liệu vì bất  
cứ giá trị nào của short cũng thuộc về int:  
short x = 10;  
int y = x; // chuyển đổi ngầm định  
Tuy nhiên, nếu thực hiện chuyển đổi ngƣợc lại, chắc chắn sẽ bị mất thông tin.  
Nếu giá trị của số nguyên đó lớn hơn 32.767 thì nó sẽ bị cắt khi chuyển đổi. Trình biên  
dịch sẽ không thực hiện việc chuyển đổi ngầm định từ số kiểu int sang số kiểu short:  
short x;  
int y = 100;  
x = y; // Không biên dịch, lỗi  
Để không bị lỗi dùng lệnh gán tƣờng minh, đoạn mã trên đƣợc viết lại nhƣ sau:  
short x;  
int y = 500;  
x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi  
2.3.4. Kiểu dữ liệu mảng  
Mảng là một tập hợp có thứ tự của những đối tƣợng, tất cả các đối tƣợng này  
cùng một kiểu. Mảng trong ngôn ngữ C# có một vài sự khác biệt so với mảng trong  
   
ngôn ngữ C++ và một số ngôn ngữ khác, bởi vì chúng là những đối tƣợng. Điều này sẽ  
cung cấp cho mảng sử dụng các phƣơng thức và những thuộc tính.  
Ngôn ngữ C# cung cấp cú pháp chuẩn cho việc khai báo những đối tƣợng Array.  
Tuy nhiên, cái thật sự đƣợc tạo ra là đối tƣợng của kiểu System.Array. Mảng trong ngôn  
ngữ C# kết hợp cú pháp khai báo mảng theo kiểu ngôn ngữ C và kết hợp với định nghĩa  
lớp do đó thể hiện của mảng có thể truy cập những phƣơng thức và thuộc tính của  
System.Array.  
Để khai báo một mảng trong C# sử dụng cú pháp nhƣ sau:  
<DataType >[]<ArrayName>  
Trong đó:  
DataType: kiểu dữ liệu như int, float….  
ArrayName: tên mảng  
[ ]: cặp dấu ngoặc vuông chỉ ra cho trình biên dịch biết đang khai báo một mảng.  
Ví dụ: Khai báo mảng số nguyên  
int[] x;  
Khởi tạo giá trị cho mảng:  
Cách 1: Khai báo và chỉ ra số phần tử của mảng  
Cú pháp: [DataType] [ ] [ArrayName] = new [DataType] [number of elements];  
Trong đó: number of elements: số phần tử của mảng.  
Ví dụ: Khai báo một mảng số nguyên lƣu trữ 5 phần tử.  
int[] a = new int[5]  
Cách 2: Khai báo sau đó mới khởi tạo số phần tử của mảng.  
Cú pháp: [DataType] [ ] [ArrayName];  
[ArrayName] = new [DataType] [number of elements];  
Ví dụ: Khai báo một mảng số nguyên lƣu trữ 5 phần tử.  
int[] a;  
a = new int[5];  
Cách 3: Khai báo, chỉ ra số lƣợng các phần tử mảng và gán các giá trị ban đầu cho các  
phần tử mảng.  
Cú pháp: [DataType] [ ] [ArrayName]= new [DataType] [number of elements]{value};  
Ví dụ khai báo mảng  
int[] a = new int[5] {1, -1, 3, 4, 5};  
Cách 4: Khai báo, không chỉ ra số lƣợng các phần tử mảng và gán giá trị cho các phần tử  
của mảng.  
Truy cập các phần tử mảng: Một mảng là một danh sách các phần tử có cùng kiểu  
dữ liệu, các phần tử đó đƣợc đánh số thứ tự bắt đầu từ 0 đến n-1 (trong đó n là số phần tử  
của mảng). Nhƣ vậy để truy cập đến 1 phần tử của mảng thì ta sử dụng một số nguyên để  
chỉ ra số thứ tự của phần tử đó trong mảng, phần tử nguyên này đƣợc gọi là chỉ số  
(index). Cú pháp tổng quát để truy cập đến phần tử thứ i của mảng là:  
[tên mảng] [i-1];  
Ví dụ: Gán giá trị 5 cho phần tử thứ 3 của mảng  
a[2] = 5;  
Duyệt qua các phần tử mảng: Mảng là một tập hợp hữu hạn phần tử do đó để duyệt  
qua các phần tử mảng thƣờng sử dụng vòng lặp for.  
Ví dụ: In danh sách các phần tử của mảng a ở trên.  
Console.WriteLine("Danh sach cac phan tu trong mang:");  
for (int i = 0; i < 5; i++)  
Console.Write(a[i] + "\t");  
2.3.5. Kiểu dữ liệu xâu  
Kiểu dữ liệu xâu lƣu giữ một mảng những ký tự. Để khai báo một xâu ta sử dụng  
từ khoá string tƣơng tự nhƣ cách tạo một thể hiện của bất cứ đối tƣợng nào:  
string str;  
Một hằng xâu đƣợc tạo bằng cách đặt các xâu trong dấu nháy đôi: “Xin chao”  
Đây là cách để khởi tạo một xâu ký tự với giá trị hằng: string chuoi = “Xin chao”  
2.4. Biến và hằng  
Một biến là một vùng lƣu trữ với một kiểu dữ liệu. Biến có thể đƣợc gán giá trị  
và cũng có thể thay đổi giá trị khi thực hiện các lệnh trong chƣơng trình.  
Để tạo một biến ta phải khai báo kiểu của biến và gán cho biến một tên duy nhất.  
Biến có thể đƣợc khởi tạo giá trị ngay khi đƣợc khai báo hoặc có thể đƣợc gán một giá  
trị mới vào bất cứ lúc nào trong chƣơng trình.  
-
Khai báo biến  
Cú pháp: <type> <tên biến>;  
Hoặc: <type> <tên biến> = <giá trị>;  
Ví dụ về khai báo biến  
class MinhHoaBien  
{
static void Main()  
{
int bien1 = 9; Console.WriteLine(“Sau khi khoi tao: bien1 =”, bien1);  
bien1 = 15; Console.WriteLine(“Sau khi gan: bien1 =”, bien1);  
}
}
   
Tải về để xem bản đầy đủ
pdf 194 trang yennguyen 24600 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình trên nền web (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_tren_nen_web_phan_1.pdf