1 SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐẮK LẮK TRƯỜNG TRUNG CẤP TÂY NGUYÊN BÁO CÁO MÔN HỌC LẬP TRÌNH WEB Đề tài : XÂY DỰNG WEBSITE ĐẶT MÓN ONLINE Thực hiện: Trịnh Văn Long
1
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐẮK LẮK
TRƯỜNG TRUNG CẤP TÂY NGUYÊN
BÁO CÁO MÔN HỌC
LẬP TRÌNH WEB
Đề tài: XÂY DỰNG WEBSITE
ĐẶT MÓN ONLINE
Thực hiện: Trịnh Văn Long
NHẬN XÉT CỦA GIÁO VIÊN
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
2
Buôn Ma Thuột, ngày…tháng…năm 2015
Giáo viên
Trần Thị Lan
3
Nội dungLỜI CẢM ƠN.......................................................................................................3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT....................................................................4
I. Kiến trúc .NET và ASP.NET...........................................................................................4
1.1. Giới thiệu tổng quan công nghệ .NET......................................................................4
II.Visual Studio 2010..........................................................................................................9
1.2. Giới thiệu ASP.NET.................................................................................................9
1.3.Visual Studio.NET 2010..........................................................................................10
1.3.2 Cài đặt Visual Studio.NET 2008..........................................................................13
1.5. Tạo/lưu/mở/chạy ứng dụng ASP.NET....................................................................16
1.5.2 Lưu ứng dụng Web...............................................................................................16
1.5.3 Mở (Chạy) ứng dụng............................................................................................16
III. Miscrosoft SQL Server 2008.......................................................................................18
1.SQL server là gì?.......................................................................................................18
1. 1. Lịch sử phát triển.................................................................................................18
2. 2. Đặc điểm của SQL Server và đối tượng làm việc.....................................................19
3.Thao tác cơ bản trên SQL SERVER.......................................................................20
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ WEBSITE........................................22
I.Phân tích chức năng........................................................................................................22
1.Chức năng đặt món...................................................................................................22
2.Chức năng quản trị...................................................................................................22
3. Đối tượng sử dụng....................................................................................................22
II. Cơ sở dữ liệu.................................................................................................................23
4
TENMONAN....................................................................................................................25
2.Mô hình quan hệ.......................................................................................................28
III. Thiết kế giao diện........................................................................................................29
CHƯƠNG 3: TRIỂN KHAI LẬP TRÌNH.......................................................32
1. Chức năng đăng nhập...........................................................................................32
2. Chức năng đăng kí................................................................................................33
3. Truy vấn chọn ra 3 nhà hàng mới nhất..............................................................34
4. Giỏ hàng.................................................................................................................34
5. Thêm quảng cáo....................................................................................................37
CHƯƠNG 4: MINH HỌA WEBSITE..............................................................39
1. Trang chủ..................................................................................................................39
2. Nhà hàng.................................................................................................................39
3. Chọn món................................................................................................................40
4. Đơn đặt hàng...........................................................................................................40
5. Đăng nhập...............................................................................................................41
6. Đăng kí....................................................................................................................42
7. Thông tin khách hàng..............................................................................................42
8. Trang Admin...........................................................................................................43
9. Trang đơn hàng chưa xử lí......................................................................................43
10. Đơn hàng đã xử líd..............................................................................................44
11. Cập nhật đơn hàng...............................................................................................44
13. Thêm loại món ăn................................................................................................46
14. Cập nhật loại món ăn...........................................................................................47
15. Thêm nhà hàng....................................................................................................475
16. Cập nhật nhà hàng...............................................................................................48
17. Thêm địa điểm.....................................................................................................48
18. Quản lí địa điểm...................................................................................................49
19. Thêm khu vực......................................................................................................49
20. Thêm thành phố...................................................................................................50
21. Cập nhật khách hàng............................................................................................50
22. Nhập quảng cáo...................................................................................................51
23. Cập nhật quảng cáo..............................................................................................51
24. Đổi mật khẩu........................................................................................................52
TÀI LIỆU THAM KHẢO..................................................................................53
6
LỜI CẢM ƠN
Để hoàn thành báo cáo bài thực tập chuyên ngành này, em xin chân thành cảm ơn các
thầy cô trong trường Trung Cấp Tây Nguyên, đặc biệt các thầy cô trong khoa Công Nghệ
Thông Tin trong suốt thời gian qua đã trang bị kiến thức chuyên ngành cho em thực hiện
được đề tài này.
Em xin chân thành cám ơn Cô Trần Thị Lan đã hướng dẫn và tận tình giúp đỡ, chỉ
bảo em trong suốt thời gian thực hiện đề tài giúp em học hỏi thêm nhiều kinh nghiệm khi
làm việc tự lập để em hoàn thành tốt đề tài này.
Em cũng xin gửi lời cảm ơn đến gia đình, bạn bè luôn động viên giúp đỡ em trong
suốt thời gian học tập và nghiên cứu, đóng góp những kinh nghiệm quý báu trong thời gian
thực hiện đề tài này.
Cuối cùng em xin chân thành cảm ơn các thầy cô và các bạn.
7
Buôn Ma Thuột, ngày…tháng…năm 2015
Trịnh Văn Long014
GV
CHƯƠNG 1: CƠ SỞ LÝ THUYẾTI. Kiến trúc .NET và ASP.NET
1.1. Giới thiệu tổng quan công nghệ .NET
1.1.1 Sự ra đời của .NET
Trước đây và cả ngày nay, trong lĩnh vực phát triển phần mềm có rất nhiều (hàng ngàn
thậm chí hàng vạn) ngôn ngữ lâp trình được sử dụng để phát triển phần mềm (như Delphi,
Ada, Cobol, Fortran, Basic, LISP, Prolog, Foxpro, Java, Pascal, C/C++, Visual Basic, VC+
+, C#...). Mỗi ngôn ngữ đều có những ưu và nhược điểm riêng, chẳng hạn Fortran là lựa
chọn số một cho các tính toán khoa học; Prolog là lựa chọn rất tốt để phát triển các phần
mềm thông minh (AI, Expert Systems…); Java có lợi thế phát triển các ứng dụng mạng,
ứng dụng Mobile và độc lập hệ điều hành (Write One – Run Everywhere); Visual Basic tỏ
ra dễ học và dễ phát triển các ứng dụng Winform; C# vượt trội bởi sự kết hợp giữa sức
mạnh của C++ và sự dễ dàng của Visual Basic…
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, điều mà ai cũng thấy rõ là 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 (Tuy rằng về tư tưởng và nguyên lý có
tương tự nhau). 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/ học hỏ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.
Ngoài ra, cùng với sự phát triển như vũ bão của Internet thì mô hình phát triển ứng
dụng cũng rất khác xưa. Các ứng dụng ngày nay không chỉ chạy riêng lẻ (stand-alone) trên
máy tính PC mà còn có thể chạy trên môi trường mạng, cung cấp hay truy cập các dịch vụ
từ xa (ứng dụng phân tán). Vai trò của phần mềm đã dần chuyển từ chỗ cung cấp các chức
năng (Funtional) cụ thể sang cung cấp các dịch vụ (Services).
8
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!
Microsoft .NET là một nền tảng (Platform) phát triển ứng dụng mới và hoàn chỉnh nhất
từ trước tới nay. Sự ra đời của Microsoft.NET có tính cách mạng, nó đem đến cho các nhà
lập trình một phong cách phát triển phần mềm đột phá, khắc phục hầu hết các hạn chế
trước đây của các ngôn ngữ lập trình. Việc sử dụng .NET không chỉ giúp phát triển các ứng
dụng đơn lẻ mà còn có thể phát triển các ứng dụng phân tán ở qui mô rất lớn; .NET làm
giảm thiểu thời gian phát triển ứng dụng, nâng cao rõ rệt chất lượng sản phẩm phần mềm.
Phiên bản .NET đầu tiên (v 1.0) được Microsoft đưa ra thị trường vào năm 2001.
1.1.2 .NET Framework là gì .
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ó msvbvm60.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ữ (ví dụ hàm, thủ tục xử lý xâu, xử
lý toán học,…). Tất cả những thứ này 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. Điều này khiến cho một lập trình viên C++ không
thể áp dụng những kiến thức họ biết sang VB hoặc ngược lại. Hơn nữa, việc phát triển bộ
thư viện riêng cho mỗi ngôn ngữ như vậy là quá dư thừa.
Ý 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) để các lập trình viên viết ứng dụng
trên bộ khung sẵn có đó. 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…
9
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” (exe này khác với file exe thông thường. 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).
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 (webform).
Windows Forms: Các thư viện dành cho phát triển các ứng dụng Windows
(winform).
10
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). Nhờ điều này mà
Các ngôn ngữ lập trình.
Kiến trúc của .NET Framework
Mô hình biên dịch và thực thi chương trình của ứng dụng .NET (1)
11
Mô hình biên dịch và thực thi chương trình của ứng dụng .NET (2)
Một cái nhìn khác về mô hình biên dịch và thực thi ứng dụng12
1.1.3 Một số ư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.
Phong cách 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 webform không khác nhiều so với ứng dụng winform.
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” (Viế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 “địa ngục DLL” như trước đây.
II.Visual Studio 2010
1.2. Giới thiệu 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 13
đượ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 hệt như lập
trình winform.
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 sử dụng ngôn ngữ lập trình VB.NET hoặc C# hoặc cả hai để phát triển ứng
dụng.
1.3.Visual Studio.NET 2010
1.3.1. Giới thiệu
Visual Studio 2010 và .NET Framework 4 đánh dấu thế hệ kế tiếp của các công cụ phát
triển từ Microsoft.
Visual Studio 2010 và .NET Framework 4 tập trung vào những cột trụ cốt lỗi trong trải
nghiệm phát triển phần mềm, cung cấp những nền tảng mới nhất, những trải nghiệm nhắm
tới các loại ứng dụng nhất định, cùng nhiều cải thiện về kiến trúc lõi.
Visual Studio là bộ công cụ hoàn chỉnh cho phép xây dựng cả các ứng dụng cho máy
để bàn lẫn các ứng dụng web doanh nghiệp theo nhóm. Ngoài khả năng xây dựng những
ứng dụng desktop tốc độ cao, bạn còn có thể sử dụng các công cụ phát triển mạnh mẽ dựa
trên thành phần cùng các công nghệ khác nhằm đơn giản hóa thiết kế, phát triển và triển
khai các giải pháp doanh nghiệp theo nhóm.
Được thiết kế nhằm đáp ứng những yêu cầu mới nhất từ các nhà phát triển, Visual
Studio cung cấp những đổi mới chủ chốt trong những lĩnh vực sau:14
Dân chủ hóa quá trình quản lý chu trình phát triển ứng dụng (ALM). ALM có vai trò
quan trọng trong một tổ chức phát triển. Trước đây, không phải vai trò nào cũng có
đóng góp như nhau trong quá trình này. Visual Studio Team System 2010 tiếp nối
khả năng tổ chức nhằm xây dựng một nền tảng cân bằng chức năng cùng đóng góp
trên toàn bộ tiến trình ALM.
Hỗ trợ những xu hướng mới xuất hiện. Mỗi năm ngành công nghiệp phát triển phần
mềm lại cho ra dời những công nghệ và xu hướng mới. Với Visual Studio 2010,
Microsoft mang đến hỗ trợ các công cụ và framework cho những phát kiến mới nhất
trong kiến trúc, phát triển và triển khai ứng dụng.
Tạo cảm hứng cho nhà phát triển. Kể từ phiên bản phát hành đầu tiên của Visual
Studio, Microsoft đã đặt ra tiêu chuẩn về sự hiệu quả và linh hoạt cho các nhà phát
triển. Visual Studio 2010 tiếp tục truyền thống này bằng cách cải thiện đáng kể trải
nghiệm cho mọi vai trò phát triển phần mềm.
Lèo lái làn sóng nền tảng thế hệ mới. Microsoft tiếp tục đầu tư vào hệ điều hành
đang dẫn đầu thị trường, các ứng dụng hiệu quả, cùng các nền tảng máy chủ nhằm
không ngừng gia tăng giá trị khách hàng. Với Visual Studio 2010, khách hàng sẽ
nhận được hỗ trợ công cụ yêu cầu để tạo ra các giải pháp không ngờ xung quanh
những công nghệ này.
Có gì mới trong Visual Studio 2010:
Microsoft Visual Studio 2010 Ultimate đơn giản hóa quá trình phát triển giải pháp,
giảm thiểu nguy cơ cũng như tăng cường kết quả trả về. Các công cụ cho mọi giai
đoạn trong chu trình phát triển, từ thiết kế, phát triển đến kiểm định và triển khai,
cho phép bạn thỏa sức thể hiện trí tưởng tượng và mang đến những giải pháp có ảnh
hưởng lớn. Phiên bản này được phân phối dưới dạng ảnh đĩa ISO và có thể được ghi
ra một đĩa trống cho quá trình cài đặt.
Microsoft Visual Studio 2010 Ultimate cung cấp một môi trường tích hợp các công
cụ và kiến trúc máy chủ nhằm đơn giản hóa toàn bộ tiến trình phát triển ứng dụng.
Tạo ra những kết quả kinh doanh với những tiến trình hiệu quả, tùy biến và có thể
dự đoán cũng như tăng cường khả năng làm việc liên thông cùng khả năng theo dõi 15
trong suốt chu trình phát triển với các phân tích chi tiết. Bất kể là tạo lập các giải
pháp mới hay tăng cường các ứng dụng hiện có giải phóng sức sáng tạo của bạn với
các công cụ dựng mẫu, kiến trúc và phát triển cho phép bạn hiện thực hóa tầm nhìn
nhắm đến số lượng nền tảng và công nghệ luôn mở rộng, bao gồm điện toán đám
mây và song song. Hiện thực hóa hiệu quả làm việc nhóm bằng cách khai thác các
tính năng cộng tác tiên tiến cũng như sử dụng các công cụ kiểm định và dò lỗi tích
hợp nhằm vừa đảm bảo chất lượng giải pháp vừa giảm thiểu phí tổn phát triển.
Hệ điều hành hỗ trợ:
Windows 7; Windows Server 2003; Windows Server 2008; Windows Vista;
Windows XP
Visual Studio 2010 có thể cài đặt trên các hệ điều hành sau:
Windows XP (x86) Service Pack 3 - mọi phiên bản trừ Starter Edition
Windows XP (x64) Service Pack 2 - mọi phiên bản trừ Starter Edition
Windows Vista (x86 & x64) Service Pack 1 - mọi phiên bản trừ Starter Edition
Windows 7 (x86 và x64)
Windows Server 2003 (x86 & x64) Service Pack 2
Windows Server 2003 R2 (x86 & x64)
Windows Server 2008 (x86 & x64) Service Pack 2
Windows Server 2008 R2 (x64)
Yêu cầu phần cứng:
Computer with a 1.6GHz or faster processor
1024 MB RAM (1.5 GB if running in a virtual machine)
3 GB of available hard-disk space
5400 RPM hard drive
DirectX 9 capable video card running at 1024 x 768 or higher-resolution display
1.3.2 Cài đặt Visual Studio.NET 2008
Bộ Visual Studio.NET 2008 được đóng gói trong một đĩa DVD (tương đương 8 đĩa CD).
Trong đó bao gồm cả bộ MSDN. Kích thước khoảng 4.5 GB.16
Việc cài đặt vô cùng dễ dàng, chỉ việc chạy file Setup sau đó chọn các mặc định khi được
hỏi. Tuy nhiên, để tiết kiệm không gian đĩa thì chỉ nên chọn các sản phẩm cần thiết để cài
đặt.
1.4. Giới thiệu môi trường tích hợp (IDE) của ASP.NET.
Một điều thật tuyệt vời là Visual Studio sử dụng một trình 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, giúp bạn chỉ cần “Học một lần nhưng áp dụng mọi nơi”.
Cửa sổ giao diện chính của môi trường phát triển tích hợp.
Trong đó:
- 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.
17
- 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.
-
Tab Split: Cho phép xem trang web đồng thời ở cả hai chế độ.
18
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. (Mở menu bar và xem tổ hợp phím tắt bên cạnh). Ví dụ:
Shift+F7 để xem ở chế độ Design, F7 xem ở chế độ Code, F4 Focus tới Properties….
19
1.5. Tạo/lưu/mở/chạy ứng dụng ASP.NET
1.5.1 Tạo mới
Có thể vào menu File Æ New Website hoặc biểu tượng trên thanh công cụ.
1.5.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.5.3 Mở (Chạy) ứng dụng
a) Mở ứng dụng web.
Nhấn tổ hợp phím Alt-Shift-O
Vào Menhu File, chọn : Open Web Site Có thể mở ứng dụng web theo một trong các cách
như sau:
20
b) Chạy ứng dụng web Đối với ASP.NET, toàn bộ ứng dụng web có thể được biên dịch
thành file nhị phân để chạy nhanh hơn. 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 CtrlShift-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 bên..
21
III. Miscrosoft SQL Server 20081.SQL server là gì?
SQL Server là viết tắt của Structure Query Language,nó là một công cụ quản lý dữ liệu
được sử dụng phổ biến ở nhiều lĩnh vực .Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ
SQL như Visual BASic,Oracle,Visual C...
Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người sử dụng truy
nhập tới CSDL mà không cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy
phải sử dụng SQL.
1. 1. Lịch sử phát triểnSQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại
trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDL
lớn.
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các
máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn
22
theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ
(Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy
trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ). Ngày nay trong các ngôn ngữ
lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong lĩnh vực phát triển của Internet
ngôn ngữ SQL càng đóng vai trò quan trọng hơn. Nó được sử dụng để nhanh chóng tạo các
trang Web động..
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO)
chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ .Nhưng cho đến nay chuẩn này
chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được
bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy có sự
khác nhau rõ ràng giưã các SQL.
2. 2. Đặc điểm của SQL Server và đối tượng làm việc2.1. Đặc điểm
- SQL là ngôn ngữ tựa tiếng Anh.
- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế
nào. Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi.
- SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
+ Chèn, cập nhật, xoá các hàng trong một quan hệ
+ Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL.
+ Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm
bảo tính bảo mật của cơ sở DL
+Đảm bảo tính nhất quán và sự ràng buộc của CSDL.
- Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL
của mình.
2.2. Đối tượng làm việc của SQL Server
Là các bảng ( tổng quát là các quan hệ )dữ liệu hai chiêù .Các bảng này bao gồm một
hoặc nhiều cột và hàng.Các cột gọi là các trường ,các hàng gọi là các bản ghi.Cột với tên
gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc của bảng (Ta
có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng ,phần tuỳ chọn[] có
23
thể được bỏ trong Oracle).Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có
một CSDL
3.Thao tác cơ bản trên SQL SERVER3.1 Tạo mới database
Bược 1. Click chuột phải lên database chọn New Database
Bước 2 Nhập tên mong muốn và click OK
3.2 Tạo bảng
Bước 1. Click vào table và chọn New Table
24
Bước 2 Nhập tên cho các trường
25
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ WEBSITE
I.Phân tích chức năngWebsite gồm hai chức năng chính đặt món và quản trị
1.Chức năng đặt món- Là một Website cho phép người dùng đặt món trực tuyến thông qua website
www.datmononline.com mà không cần phải đến nhà hàng- Cho phép khách hàng đăng kí/đăng nhập - Là một Website động, các thông tin được cập nhật theo định kỳ.- Người dùng truy cập vào Website có thể xem, tìm kiếm, đặt món ăn- Các sản phẩm được sắp xếp hợp lý phân theo từng địa điểm.- Người dùng có thể xem chi tiết từng món ăn- Khi đã chọn được món ăn vừa ý thì người dùng click vào nút thêm để thêm món ăn
vào giỏ hàng của họ.- Người dùng vẫn có thể quay trở lại trang sản phẩm để xem và chọn tiếp, các món đã
chọn sẽ được lưu vào trong giỏ hàng.- Khách hàng cũng có thể bỏ đi những món ăn không vừa ý đã có trong giỏ hàng.- Nếu đã quyết định mua các món ăn trong giỏ hàng thì người dùng click vào mục
thanh toán để hoàn tất việc mua hàng, hoặc cũng có thể huỷ mua hàng.Đơn giá của các món hàng sẽ có trong giỏ hàng.
2.Chức năng quản trị 2.1 Quản lý tài khoản
- Cho phép đăng nhập vào trang quản trị- Cung cấp chức năng quản lý tài khoản người quản trị như tạo mới , thay đổi mật
khẩu, sửa đổi thông tin, xóa tài khoản2.2 Quản lý website
- Chức năng quản lí website được chia là hai phần chính là thêm và cập nhật, trong đó :
o Thêm : thêm mới một đối tượng ví dụ như thêm nhà hàng mới, thêm món ăn mới.
o Cập nhật : gồm các chức năng chỉnh sửa, xóa- Các đối tượng mà website quản lý : địa điểm, khu vực, nhà hàng, món ăn, loại món
ăn, khách hàng, quảng cáo3. Đối tượng sử dụng
- Có 2 đối tượng sử dụng cơ bản là người dùng và nhà quản trị:
26
o Người dùng : Qua Website, khách hàng có thể xem thông tin, lựa chọn những sản phẩm ưa thích ở mọi nơi thậm chí ngay trong phòng làm việc của mình.
o Nhà quản trị : Nhà quản trị có toàn quyền sử dụng và cập nhật sản phẩm, hoá đơn, quản lý khách hàng, đảm bảo tính an toàn cho Website.
II. Cơ sở dữ liệu1. Bảng Thành phố
THANHPHO
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MATP Mã thành phố Nvarchar (10) Bắt buộc nhậpKhóa chính
TENTP Tên thành phố Nvarchar (100)
2. Bảng Khu vực
KHUVUC
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MAKV Mã khu vực Nvarchar (10) Bắt buộc nhậpKhóa chính
MATP Mã thành phố Nvarchar(10) Bắt buộc nhập
TENKV Tên khu vực Nvarchar (100)
3.Bảng Nhà hàng
NHAHANG
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MANH Mã nhà hàng Nvarchar (10) Bắt buộc nhậpKhóa chính
MAKV Mã khu vực Nvarchar (10) Bắt buộc nhập
27
TENNH Tên nhà hang Nvarchar (100)
DIACHI Địa chỉ Nvarchar (200)
ĐIENTHOAI Số điện thoại Nvarchar (12)
EMAIL Địa chỉ email Nvarchar (50)
THOIGIANPHUCVU Thời gian phục vụ Nvarchar (50)
DATTOTHIEU Đặt tối thiểu Number (20)
URLHINHANH Đường dẫn hình ảnh Nvarchar (500)
4. Bảng chi tiết nhà hàng
CHITIETNHAHANG
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MANH Mã nhà hàng Nvarchar (10)
MAKV Mã khu vực Nvarchar (10)
5. Bảng loại món ăn
LOAIMON
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MALOAI Mã loại Nvarchar (10)Khóa chính
Bắt buộc nhập
TENLOAI Tên loại Nvarchar (50)
6. Bảng món ăn
28
MONAN
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MASP Mã món ăn Nvarchar (10)Bắt buộc nhập
Khóa chính
MALOAI Mã loại Nvarchar (10) Bắt buộc nhập
TENMONAN Tên món ăn Nvarchar
GIA Giá món ăn Int
7. Bảng Khách hàng
KHACHHANG
Tên cột Mô tả Kiểu dữ liệu Ghi chú
USERNAME Tài khoản khách hàng Nvarchar (10)
Bắt buộc nhậpKhóa chính
TENKH Họ tên khách hàng Nvarchar (50)
MATKHAU Mật khẩu Nvarchar (50) Bắt buộc nhập
DIENTHOAI Số điện thoại Nvarchar (12)
EMAIL Email Nvarchar (50)
8. Bảng đơn đặt hàng
DONDATHANG
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MADDH Mã đơn đặt hàng Autonumber Khóa chính
NGAYDATHANG Ngày đặt hàng DateTime
29
TONGTIEN Tổng tiền Int
MAKH Mã khách hàng Nvarchar (10)
9. Bảng Chi tiết đặt hàng
DONDATHANG
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MASP Mã sản phẩm Nvarchar (10)Khóa chính
Bắt buộc nhập
MADDH Mã đơn đặt hàng Autonumber
SOLUONG Số lượng Int
10. Bảng Quảng cáo
Quảng cáo
Tên cột Mô tả Kiểu dữ liệu Ghi chú
MAQC Mã quảng cáo Autonumber Khóa chính
HinhAnh Hình ảnh Nvarchar (500)
LIENKET Số lượng Nvarchar (500)
MOTA Mô tả Nvarchar (500)
30
11. Bảng Admin
Admin
Tên cột Mô tả Kiểu dữ liệu Ghi chú
USERNAME Tên tài khoản Nvarchar (30) Khóa chính
Bắt buộc nhập
PASSWORD Mật khẩu Nvarchar (50)
HOTEN Họ tên người quản trị Nvarchar (50)
31
2.Mô hình quan hệ
32
III. Thiết kế giao diệnPhác thảo giao diện
1.Trang chủ
2.Trang chọn nhà hàng
33
Logo
Chọn địa điểm
Quảng cáo
Chân trang
Nhà hàng mới cập nhật
Logo
Một số món nổi bật
Logo
Danh sách nhà hàng
3.Chọn món ăn
4.Trang thanh toán
34
Logo
Thông tin nhà hàng
Logo
Danh sách món ăn Giỏ hàng
Logo
Thanh toán
Logo
5.Trang đăng kí
5.Trang Admin
35
Logo
ĐĂNG KÍ
Logo
Logo
Logo
Thanh điều hướng
Nội dung
CHƯƠNG 3: TRIỂN KHAI LẬP TRÌNH1. Chức năng đăng nhập
Code
protected void btDangNhap_Click(object sender, EventArgs e) { CheckLogin(); } private void CheckLogin() { string strconm = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; SqlConnection dbconnt = new SqlConnection(strconm); try { dbconnt.Open();
} catch {
} SqlCommand execute = new SqlCommand("Select * From KHACHHANG", dbconnt); SqlDataReader reader = execute.ExecuteReader(); DataTable table = new DataTable(); table.Load(reader); foreach (DataRow dr in table.Rows) { if ((txtUserName.Text) == dr["USERNAME"].ToString() && txtPassword.Text == dr["PASSWORD"].ToString()) { Session["UserLogin"] = true; Session["UserName"] = dr["TENKH"].ToString(); Session["UserID"] = dr["USERNAME"].ToString(); Response.Redirect(Session["returnurl"].ToString(), false); }
36
else txtThongBao.Text = "Bạn đã nhập sai tên đăng nhập hoặc tài khoaEn !";
} try { dbconnt.Close();
} catch {
}
}
2. Chức năng đăng kí
protected void btDangNhap_Click(object sender, EventArgs e) { try { if (txtMatKhau.Equals(txtMatKhau2)) { SqlDataSource1.Insert(); txtThongBao.Text = "Bạn đã đăng kí thành công !"; } else {txtThongBao.Text="Mật khẩEu không trùng nhau"; txtMatKhau.Text=""; txtMatKhau2.Text=""; }
} catch (Exception ex) { txtThongBao.Text = ex.ToString(); }
37
}
3. Truy vấn chọn ra 3 nhà hàng mới nhất
SELECT TOP (3) NHAHANG.MANH, NHAHANG.TENNH, NHAHANG.DIENTHOAI, NHAHANG.EMAIL,
NHAHANG.THOIGIANPHUCVU, NHAHANG.THOIGIANGIAOHANG, NHAHANG.URLHINHANH,
NHAHANG.NGAYNHAP, CHITIETNHAHANG.DIACHI, NHAHANG.NGAYNHAP AS ngaynhap
FROM CHITIETNHAHANG INNER JOIN NHAHANG ON CHITIETNHAHANG.MANH = NHAHANG.MANH ORDER
BY NHAHANG.NGAYNHAP DESC
4. Giỏ hàng
Nút thêm
<asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl='<%# Session["URLPageChonMon"]
+"&action=add&"+string.Format("id={0}&name={1}&price={2}",Eval ("MAMONAN"),Eval("TENMONAN"),Eval ("GIA")) %>'
Font-Bold="TRUE">Thê?m</asp:HyperLink>
38
Code Giỏ hàng
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) { DataTable cart = new DataTable(); if (Session["cart"] == null) { //NêNu chưa có gioE hàng, tạo gioE hàng thông qua DataTable với 4 cột chính //ID (Mã saEn phẩEm), Name (Tên saEn phẩEm) //Price (Giá tiêUn), Quantity (SôN lượng)
cart.Columns.Add("ID"); cart.Columns.Add("Name"); cart.Columns.Add("Price"); cart.Columns.Add("Quantity"); //Sau khi tạo xong thì lưu lại vào session Session["cart"] = cart; } else { //LẩNy thông tin gioE hàng từ Session["cart"] cart = Session["cart"] as DataTable; } if (!String.IsNullOrEmpty(Request.QueryString["action"])) { if (Request.QueryString["action"] == "add") { string id = Request.QueryString["id"]; string name = Request.QueryString["name"]; string price = Request.QueryString["price"]; //KiêEm tra xem đã có saEn phẩEm trong gioE hàng chưa ? //NêNu chưa thì thêm baEn ghi mới vào gioE hàng với sôN lượng Quantity là 1 //NêNu có thì tăng quantity lên 1 bool isExisted = false; foreach (DataRow dr in cart.Rows) { if (dr["ID"].ToString() == id) { dr["Quantity"] = int.Parse(dr["Quantity"].ToString()) + 1; isExisted = true; break; } } if (!isExisted)//Chưa có saEn phẩEm trong gioE hàng { DataRow dr = cart.NewRow(); dr["ID"] = id; dr["Name"] = name; dr["Price"] = price; dr["Quantity"] = 1; cart.Rows.Add(dr); } //Lưu lại thông tin gioE hàng mới nhẩNt vào session["Cart"]
39
Session["cart"] = cart; //Quay lai trang chu Response.Redirect(Session["URLPageChonMon"].ToString()); } }
//Hiện thị thông tin gioE hàng GridView1.DataSource = cart; GridView1.DataBind(); } }
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { //SưEa thông tin gioE hàng string id = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); TextBox quantity = GridView1.Rows[e.NewSelectedIndex].Cells[2].FindControl("txtQuantity") as TextBox; //Duyệt qua GioE hàng và tăng sôN lượng DataTable cart = Session["cart"] as DataTable; foreach (DataRow dr in cart.Rows) { //KiêEm tra mã saEn phẩEm phù hợp đêE gán sôN lượng khách hàng mua if (dr["ID"].ToString() == id) { dr["Quantity"] = int.Parse(quantity.Text); break; } } //Lưu lại vào Session Session["cart"] = cart; //HiêEn thị gioE hàng với thông tin mới GridView1.DataSource = cart; GridView1.DataBind(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { //Xóa saEn phẩEm khoEi gioE hàng string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); //Duyệt qua GioE hàng và xóa saEn phẩEm phù hợp DataTable cart = Session["cart"] as DataTable; foreach (DataRow dr in cart.Rows) { //KiêEm tra mã saEn phẩEm phù hợp đêE tăng sôN lượng if (dr["ID"].ToString() == id) { dr.Delete(); break; } } //Lưu lại vào Session Session["cart"] = cart; //HiêEn thị gioE hàng với thông tin mới GridView1.DataSource = cart; GridView1.DataBind(); }
40
protected void Button1_Click(object sender, EventArgs e) { Session["cart"] = null; }}
5. Thêm quảng cáo
protected void cmdLuu_Click(object sender, EventArgs e) { try { Session["urlhinhanh"] = "../Images/QuangCao/" + FileUpload1.FileName;
uploadImage(); SqlDataSource1.Insert(); lbThongBao.Text = "Lưu thành công !"; } catch (Exception ex) { lbThongBao.Text = "Lôi !" + ex.Message; } }
protected void txtMaQC_TextChanged(object sender, EventArgs e) {
txtMaQC.Text = txtMaQC.Text.ToUpper();
} protected void Button3_Click(object sender, EventArgs e) { txtMaQC.Text = ""; txtLienKet.Text = ""; txtMoTa.Text = ""; Image1.ImageUrl = ""; lbThongBao.Text = "";
}
41
private void uploadImage() { if (Page.IsValid && FileUpload1.HasFile) {
try { string filename = Path.GetFileName(FileUpload1.FileName); string pathFile = Server.MapPath("~/Images/QuangCao/") + filename; FileUpload1.SaveAs(pathFile);
Image1.ImageUrl = "~/Images/QuangCao/" + filename;
} catch (Exception ex) { lbThongBao.Text = ex.ToString(); }
} }}
42
CHƯƠNG 4: MINH HỌA WEBSITE
1. Trang chủ
Chức năng: Cho phép người dùng chọn khu vực nhận đặt hàng, hiển thị quảng cáo
2. Nhà hàng
43
Chức năng: Hiển thị danh sách nhà hàng hiện có, cho phép khách hàng chọn nhà hàng
3. Chọn món
Chức năng : Hiển thị món ăn của nhà hàng , cho phép khách hàng chọn món ăn để thêm
vào giỏ hàng
4. Đơn đặt hàng
44
Chức năng : Cho phép khách hàng nhập người nhận hàng ,thông tin liên lạc, xác nhận các
món ăn đã chọn và yêu cầu đơn đặt hàng
5. Đăng nhập
Chức năng : Cho phép khách hàng đăng nhập
45
6. Đăng kí
Chức năng : Cho phép khách hàng đăng kí thành viên để có thể mua hàng
7. Thông tin khách hàng
Chức năng : Cho phép khách hàng xem thông tin của mình và đổi thông tin khi có nhu cầu
46
8. Trang Admin
9. Trang đơn hàng chưa xử lí
47
Chức năng : Hiển thị toàn bộ đơn hàng chưa được xử lí. Thông tin đơn hàng bao gồm :
Thông tin khách hàng, người nhận , danh sách món ăn khách hàng yêu cầu, tổng số tiền
hóa đơn
10. Đơn hàng đã xử líd
Chức năng : Hiển thị đơn hàng đã xử lí và cho phép chỉnh sửa khi có nhu cầu
11. Cập nhật đơn hàng
48
Chức năng: Cho phép chỉnh sửa đơn hàng
Cập nhật chi tiết đơn hàng
49
Chức năng: Cho phép chỉnh sửa chi tiết đơn hàng
12. Cập nhật món ăn
Chức năng: Cho phép chỉnh sửa món ăn
13. Thêm loại món ăn
50
Chức năng: Cho phép thêm loại món ăn mới
14. Cập nhật loại món ăn
Chức năng: Cho phép chỉnh sửa loại món ăn mới
15. Thêm nhà hàng
51
Chức năng: Cho phép thêm nhà hàng mới
16. Cập nhật nhà hàng
Chức năng: Cho phép chỉnh thông tin nhà hàng
17. Thêm địa điểm
52
Chức năng: Cho phép thêm địa chỉ của nhà hàng ở các khu vực
18. Quản lí địa điểm
Chức năng: Cho phép chỉnh sửa địa điểm nhà hàng
19. Thêm khu vực
53
Chức năng: Cho phép thêm, cập nhật khu vực
20. Thêm thành phố
Chức năng: Thêm thành phố
21. Cập nhật khách hàng
54
Chức năng: Cho phép chỉnh sửa thông tin khách hàng
22. Nhập quảng cáo
Chức năng: Thêm quảng cáo mới
23. Cập nhật quảng cáo
55
24. Đổi mật khẩu
Chức năng: Cho phép Admin đổi mật khẩu
56
TÀI LIỆU THAM KHẢO
1. http://www.w3schools.com/.
2. http://getbootstrap.com/
3. Bài giảng Lập trình web của thạc sĩ Hoàng Mạnh Hùng
4. www.izwebz.com
57