Tải bản đầy đủ (.pdf) (80 trang)

Xây dựng hệ thống quản lý bán hoa trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.91 MB, 80 trang )


TRNG I HC M TP. HCM
KHOA CÔNG NGH THÔNG TIN



KHÓA LUN TT NGHIP


XÂY DNG H THNG QUN LÝ
BÁN HOA TRC TUYN


Ngành: Công Ngh Thông Tin

Hng chuyên ngành: Qun Tr Mng

Khóa: 2007 - 2011


Ging viên hng dn: TS. LÊ XUÂN TRNG
Sinh viên thc hin: PHM THÀNH TÀI
MSSV: 10701119
Lp : TH07B1


TP. H Chí Minh, tháng 9 nm 2011





LI CÁM N


 hoàn thành khóa lun tt nghip này, em đã nhn đc s hng
dn, giúp đ và góp ý nhit tình ca quý thy cô trng i Hc M Thành ph
H Chí Minh, cùng vi s đng viên và giúp đ ca gia đình.
Trc tiên, em xin gi li cm n đn thy Lê Xuân Trng ngi đã tn
tình hng dn em trong sut thi gian qua đ có th hoàn thành khóa lun tt
nghip này.
Em xin chân thành cm n quý thy, cô trng i Hc M Thành ph
H Chí Minh đã tn tình dìu dt, ging dy và truyn đt nhng kin thc quý
báo trong sut thi gian chúng em hc ti trng.
Em xin cám n gia đình, bn bè nhng ngi luôn luôn đng viên và giúp
đ em trong sut thi gian qua.
Mc dù em đã c gng bng tt c s nhit tình và nng lc ca mình
nhng do trình đ còn hn ch và thi gian hn hp nên chc chn s còn nhiu
thiu sót. Rt mong nhn đc s đóng góp ý kin ca quý thy cô và ban lãnh
đo đ đ tài này hoàn chnh và mang tính thc tin hn.

Sinh viên
Phm Thành Tài



NHN XÉT CA GING VIÊN HNG DN























NHN XÉT CA GING VIÊN PHN BIN
























MC LC
DANH MC CÁC BNG 1
DANH MC S  VÀ HÌNH 2
DANH MC T VIT TT VÀ TING ANH 4
CHNG 1: TNG QUAN 5
1.1 Gii thiu 5
1.2 Mc đích đ tài 5

1.3 Phng pháp thc hin 6
1.4 Phm vi đ tài 7
1.5 B cc 8
CHNG 2: C S LÝ THUYT 9
2.1. Gii thiu ASP.NET 9
2.2. Gii thiu ADO.NET 15
2.2.1. Gii thiu chung 15
2.2.2. So sánh vi phiên bn ADO 15
2.2.3. Kin trúc ADO.NET 17
2.2.4. Ý ngha ca vic x lý d liu ngt kt ni trong ng dng Web 18
2.2.5. i tng Connection 18

2.2.6. i tng Command 20
2.3. Truy câ

p d

liê

u ADO.NET 23

2.4 Gii thiu v AJAX 25
2.4.1 Gii thiu 25
2.4.2 Quá trình hot đng ca AJAX 25
CHNG 3 : PHÂN TệCH H THNG 27
3.1 Phân tích yêu cu 27

3.1.1 Xác đnh yêu cu 27
3.1.2. Phân tích yêu cu: 28
3.2 Các s đ phân tích 30

3.2.1 Biu đ UseCase ca h thng 30
3.2.2 Thit k d liu 36
CHNG 4 : HIN THC CHNG TRÌNH 48


4.1 Giao din website phía ngi dùng 48
4.1.1 Trang ch 48
4.1.2 Trang đng ký khách hàng mi 49
4.1.3 Trang đng nhp ca khách hàng 50
4.1.4 Trang thay đi thông tin cá nhân và mt khu 51
4.1.5 Phn tìm kim sn phm 52

4.1.6 Thng kê s lng truy cp vào trang web 52
4.1.7 Trang gi hàng 53
4.1.8 Trang chi tit đn đt hàng 54
4.1.9 Thanh toán qua Paypal.com 55
4.1.10 Các trang thông tin v trang web bán hoa 59
4.2 Giao din phía ngi qun tr website 60

4.2.1 Trang đng nhp vào h thng 60
4.2.2 Trang ch 62
4.2.3 Trang qun lý nhà cung cp 62
4.2.4 Trang qun lý nhóm sn phm 63
4.2.5 Trang qun lý sn phm 64
4.2.6 Trang qun lý nhp hoa 65
4.2.7 Trang qun lý loi hoa 66
4.2.8 Trang qun lý khách hàng 67
4.2.9 Trang qun lý nhân viên 67
4.2.10 Trang qun lý đn hàng 69
4.2.11 Chc nng thng kê 70
CHNG 5: KT LUN 72
5.1. Chc nng đã làm đc 72

5.2. Hng phát trin 72
TÀI LIU THAM KHO 73
PH LC 74
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 1

DANH MC CÁC BNG


Bng 2.1 - Các tp tin cn bn trong ASP.NET 12
Bng 2.2 - Các s kin ca trang Web 13
Bng 2.3 - Các s kin ng dng 14
Bng 2.4 – So sánh ADO và ADO.NET 16
Bng 3.1 – Mô t chc nng chính ca ngi qun tr 32
Bng 3.2 – Mô t chc nng chính ca ngi dùng 34
Bng 3.3 – Các thuc tính ca nhà cung cp 41
Bng 3.4 – Các thuc tính ca hoa 41
Bng 3.5 – Các thuc tính ca phiu nhp 42
Bng 3.6 – Các thuc tính ca chi tit phiu nhp 42
Bng 3.7 – Các thuc tính ca nhóm sn phm 42
Bng 3.8 – Các thuc tính ca sn phm 43
Bng 3.9 – Chi tit sn phm 44
Bng 3.10 – Các thuc tính ca khách hàng 44
Bng 3.11 – Các thuc tính ca đn hàng 45
Bng 3.12 – Các thuc tính ca chi tit đn hàng 46
Bng 3.13 – Các thuc tính ca nhân viên 46
Bng 3.14 – Các thuc tính ca lt truy cp 47
Bng 3.14 - Danh sách các ngi dùng 61
Hình 4.35 – Thng kê hoa 71
Bng 3.15 – Chú thích các thành phn Usecase ca h thng 74


 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 2

DANH MC S  VÀ HÌNH



Hình 2.1 - Quá trình biên dch và thc thi trong ASP.NET 11
Hình 2.2 – Vòng đi ca trang ASP.NET 13
Hình 2.3 – Mô hình kin trúc ADO.NET 17
H̀nh 2.4 - Thc hin chng tr̀nh vi truy nhp d liu ADO.NET 25
Hình 2.5 - ng dng truyn thng ( trái) và ng dng Ajax (phi). 26
Hình 3.1 – Mô hình chc nng ngi qun tr 31
Hình 3.2 – Mô hình chc nng ca ngi dùng 34
Hình 3.3 - Mô hình quan h 36
Hình 3.4 - Thc th nhà cung cp 37
Hình 3.5 - Thc th hoa 37
Hình 3.6 - Thc th nhóm sn phm 37
Hình 3.7 - Thc th sn phm 38
Hình 3.8 - Thc th khách hàng 38
Hình 3.9 - Thc th hình thc thanh toán 38
Hình 3.10 - Thc th đn hàng 39
Hình 3.11 - Thc th nhân viên 39
Hình 3.12 - Thc th lt truy cp 40
Hình 4.1 – Giao din trang ch bán hoa 48
Hình 4.2 – ng ký làm thành viên 50
Hình 4.3 – ng nhp vào website 50
Hình 4.4 – Thay đi thông tin cá nhân 51
Hình 4.5 – Thay đi thông tin mt khu 52
Hình 4.6 – Tìm kim sn phm 52
Hình 4.7 – Tìm kim sn phm 52
Hình 4.8 – S lt truy cp vào trang web 53
Hình 4.9 – Chi tit gi hàng 53
Hình 4.10 – Chi tit đn đt hàng 54
Hình 4.11 – Hoàn tt đt hàng 55
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn


Trang 3

Hình 4.11 – ng nhp vào tài khon ngi bán ti Paypal.com 56
Hình 4.12 – ng nhp vào tài khon ngi mua hàng 57
Hình 4.13 – Chi tit thanh toán ti paypal.com 58
Hình 4.14 – Thanh toán thành công 58
Hình 4.15 – Chi tit đn hàng đã giao dch thành công 59
Hình 4.16 – Gii thiu v công ty 60
Hình 4.17 – Hng dn đt hoa 60
Hình 4.18 – Giao din đng nhp vào trang qun tr 61
Hình 4.19 – Thay đi mt khu 61
Hình 4.20 – Giao din trang qun lý 62
Hình 4.21 – Giao din trang nhà cung cp 63
Hình 4.22 – Giao din trang nhóm sn phm 64
Hình 4.23 – Thông tin v sn phm 65
Hình 4.24 – Thêm sn phm mi 65
Hình 4.25 – Nhp hoa 66
Hình 4.26 – Qun lý loi hoa 66
Hình 4.27 – Thêm loi hoa 67
Hình 4.28 – Qun lý thông tin khách hàng 67
Hình 4.29 – Qun lý nhân viên 68
Hình 4.30 – Thêm nhân viên 69
Hình 4.31 – Qun lý đn hàng 69
Hình 4.32 – X lý đn hàng 70
Hình 4.33 – Thng kê 70
Hình 4.34 – Thng kê doanh thu 71
Hình 4.35 – Thng kê hoa 71


 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn


Trang 4

DANH MC T VIT TT VÀ TING ANH
CNTT Công ngh thông tin
Code Mã
Building Xây dng
Deloying Trin khai
Running Thc thi
CSDL C s d liu
Control iu khin
Database C s d liu
Download Ti v
Implement Thc thi
Intermediate Trung gian
Language Ngôn ng
Left Bên trái
List Danh sách
Logic Lp lun hp lý
Logo Biu tng, hình nh đi din
Main Chính
Model Kiu, mu, mô hình
Password Mt khu
Right Bên phi
Session Phiên làm vic
Server Máy phc v, máy ch
Submit Tr̀nh, đ tr̀nh
Template Khuôn mu
Username Tên ngi s dng
Web World Wide Web, th


ng đ

c go

i tt la

Web
Website Là tp hp nhiu trang web
Web form Giao din Website
ASP.NET Actice Server Page

 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 5

CHNG 1: TNG QUAN
1.1 Gii thiu
Cùng vi s phát trin kinh t nhanh chóng  nc ta hin nay theo đó nhu cu
tiêu dùng ca con ngi ngày càng tng cao , đi cùng vi đó là nhu cu v n ung,
mua sm, làm đp
Bên cnh đó, hin nay cùng vi s phát trin rt nhanh ca Internet vi nhng
công ngh mi v thông tin và truyn thông mang li cho rt nhiu thun li, ngi
tiêu dùng không ch dng li  mc phi đn tn các ca hàng , công ty đ mua hàng
hóa mà mình cn, vi Internet, nó đã cung cp mt dch v nhanh hn và ti u hn
cho ngi tiêu dùng nh mua hàng trc tuyn, t vn trc tuyn và các hình thc
qung bá sn phm t doanh nghip nhm đáp ng đc nhu cu ngày càng cao ca
con ngi.
Do nm bt đc nhu cu ngày càng cao ca ngi tiêu dùng các công ty doanh
nghip đã phát trin nhiu hình thc qung cáo sn phm ca m̀nh đn khách hàng

trong đó vic xây dng các website bán hàng trc tuyn là mt hình thc rt ph bin
và thành công hin nay.
i vi ngi tiêu dùng, vi ch mt chic máy tính ni mng internet thì h có
th tip cn nhng công ngh mi, tin tc, nhng sn phm mi, chn la và so sánh
đc sn phm tt nht cn thit cho m̀nh và điu đc bit là có th tit kim đc rt
nhiu thi gian và chi phí cho vic đi li chn la sn phm mình mong mun.
Vi vic phát trin nhanh chóng nh hin nay, và nhu cu mua sm trc tuyn
ngày càng cao thì vic xây dng website qung bá Bán Hoa Trc Tuyn là mt phn
hoàn toàn cn thit và quan trng cho các công ty, ca hàng.
1.2 Mc đích đ tài
Vi ngun hoa di dào ti nc ta hin nay cùng vi s phát trin áp dng khoa
hc k thut đ to ra nhng chng loi hoa mi vi nhiu màu sc nét đp riêng. Các
vn hoa ni ting nh à Lt, Sa éc… vi rt nhiu loi hoa đp đáp ng cho hu
ht các công ty ca hàng trong c nc. Nhng nhng loi hoa sn phm đp vn cha
đc qung bá tt đn ngi tiêu dùng ti Vit Nam cng nh ngoài nc. Vì vy,
vic qung bá hoa thông qua hình thc trc tuyn là 1 cách tt đ giúp các công ty, ca
hàng gii thiu đc nhng loi hoa và sn phm mi ti ngi tiêu dùng.
Vi vic xây dng website qun lý và qung bá bán hoa trc tuyn s mang đn
cho công ty, ca hàng nhng thun li nht đnh nh : giúp gii thiu sn phm cng
nh h̀nh nh ca m̀nh đn khách hàng, qun lý đc sn phm, các loi hoa, nhp
hoa… thc hin mt cách nhanh hn và tránh lãng phí v thi gian cng nh nhân lc,
đng thi ngày càng nâng cao cht lng dch v ca công ty.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 6

Website vi chc nng cho phép ngi dùng đt hàng trc tuyn qua tài khon
ti Paypal.com giúp cho vic giao dch din ra mt cách nhanh chóng và tin li hn.
Ngoài ra, nó giúp cho ngi qun lý d dàng hn trong vic nm bt đc nhng đn
đt hàng cng nh vic x lý đn đt hàng. Thêm vào đó, ngi qun lý, nhân viên ti

công ty có th thng kê đc s lng sn phm còn li, doanh thu ca công ty trong
thi gian nht đnh.
1.3 Phng pháp thc hin
Tìm hiu c s lý thuyt v môi trng lp trình ASP.Net 3.5 , cách thc hot
đng cng nh vic s dng các control đ đa vào trang web. Thêm vào đó, tìm hiu
k các điu khin liên quan đn vic truy cp d liu gia trang web và phía c s d
liu cng nh cách thc hot đng ca mô hình 3 lp - xây dng ng dng theo mô
hình 3 lp đn gin và hiu qu. Ngoài ra, còn tìm hiu thêm các tính nng đc đim
ca ASP.Net AJAX. Thit k xây dng c s d liu s dng Microsoft SQL Server
2005, tìm hiu v các thành phn c bn ca mt c s d liu, cách thc truy cp d
liu bng Store Procedure.
Phân tích các vn đ liên quan và cn thit đ xây dng mt website v qun lý
và qung bá bán hoa trc tuyn. Ngoài ra, xây dng đc c s d liu cho website.
 V phn qun lý:
o Thc hin các chc nng c bn nh vic thêm, sa, xóa mt đi tng c th.
o Qun lý đc các thông tin v khách hàng, nhóm sn phm, nhà cung cp…
o Qun lý đc vic nhp hoa khi cn thit.
o Qun lý sn phm : to mi sn phm, thay đi thông tin sn phm, s lng
sn phm.
o Qun lý đc thông tin nhân viên cng nh cách thc phân quyn cho tng
nhân viên vi công vic c th.
o Thc hin qun lý đn hàng mà khách hàng đã đt hàng, cho phép x lý tìm
kim đn hàng trong khong thi gian nht đnh, hay vic tìm kim đn hàng
theo tình trng ca đn hàng và 1 s tùy chn khác.
o Cho phép thc hin các thng kê v doanh thu trong ngày, theo tháng và thng
kê s lng hoa còn tn trong ngày đó.
 V phn qung bá :
o Hin th thông tin sn phm theo tng nhóm sn phm c th.
o Cung cp chc nng cho khách hàng có th đt, mua hàng,xem gi hàng hin
ti. Ngoài ra, còn cung cp các chc nng thanh toán cho ngi dùng la chn

nh : thanh toán trc tuyn qua tài khon ti Paypal.com, thanh toán trc tip
cho nhân viên khi giao hàng.
o Cho phép ngi dùng đng ký tài khon đ thc hin chc nng mua hàng.
Thêm vào đó, ngi dùng có th thc hin thay đi thông tin cá nhân ca mình.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 7

o Ngoài ra, Website cung cp chc nng t̀m kim giúp ngi dùng có th tìm
kim mt cách nhanh chóng trong vic chn hàng.
1.4 Phm vi đ tài
 tài nhm mc đích phc v công vic qun lý kinh doanh ti mt ca hàng
mua bán hoa, bao gm nhng chc nng sau :
 Xây dng ng dng qun lý bán hàng:
Tham kho mô hình lp trình 3 lp và ng dng các hàm kt ni, x lý d liu
SQL Server đ xây dng ng dng chy trên nn Web form cho phép thc hin các
chc nng:
o Phân quyn cho phép nhân viên truy cp vào h thng vi các quyn đc cho
phép.
o Xây dng h thng danh mc giúp cho ngi dùng có th chn la nhanh
chóng.
o Qun lý thêm, xóa, sa và theo dõi các danh mc: nhân viên, nhóm sn phm,
sn phm, khách hàng, loi hoa, nhà cung cp …
o Chc nng cho phép nhp hoa theo ngày.
o Thc hin vic tng hp và x lý đn hàng cho tng hóa đn.
o Thng kê đc doanh thu ca sn phm bán đc theo ngày hoc theo tháng …
o Thng kê s lng sn phm ca tng loi sn phm.
o Thng kê s lng hoa còn tn.
 Xây dng ng dng qung bá hoa:
Thc hin công vic gii thiu, qung bá, mua bán sn phm qua mng. Nhm

h tr, m rng phm vi kinh doanh .Gm các thành phn và yêu cu chính:
o Gii thiu Công ty: Trình bày thông tin gii thiu v Công ty, lnh vc hot
đng…
o Gii thiu v sn phm, dch v: Cung cp cho khách hàng nhng thông tin cn
thit v các sn phm, dch v. Chúng đc chia theo danh mc, mi danh mc
có nhiu sn phm đc tr̀nh bày di dng danh sách các thành phn bao gm
hình nh, mô t và giá thành.
o Phn đt hàng, gi hàng: Bao gm các chc nng ca gi hàng, đn hàng…,
giúp cho khách hàng có th chn hàng và đng ký đt mua hàng mt cách d
dàng.
o Bên cnh vic thanh toán theo hình thc thanh toán trc tip vi nhân viên giao
hàng. Website còn cung cp chc nng Thanh toán trc tuyn- H tr thanh
toán trc tuyn qua tài khon ti Paypal.com , to thun li trong quá trình mua
bán qua mng internet.
o Tìm kim: Cho phép tìm các sn phm trên website bng các t khóa có liên
quan.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 8

1.5 B cc
Chng 1 – Tng quan.
Chng 2 – C s lý thuyt.
Chng 3 – Phân tích h thng.
Chng 4 – Hin thc chng tr̀nh.
Chng 5 – Kt lun.

 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 9


CHNG 2: C S LÝ THUYT
2.1. Gii thiu ASP.NET

ASP.NET là công ngh mi ca Microsoft, tên đy đ ca ASP.NET là Active
Server Pages .NET (.NET  đây là .NET framework). ASP NET là th h tip theo
ca ASP nhng nó không phi là phiên bn cp nht t ASP.
ASP.NET là mt công ngh có tính cách mng, dùng đ phát trin các ng dng
v mng hin nay cng nh trong tng lai. Nó cung cp mt cách thng nht cho mô
hình phát trin ng dng Web. ASP.NET bao gm nhng dch v cn thit cho ngi
lp tr̀nh đ xây dng lp cho ng dng Web. Ngoài ra , nó cng cung cp nhng mô
hình và cu trúc giúp vng chc và to nên s bo mt hn cho ng dng.
ASP.NET là mt phng pháp t chc hay khung t chc (framework) đ thit
lp các ng dng ht sc hùng mnh cho mng da trên CLR (Common Language
Runtime).
 ASP.NET tích hp vi .NET Framework
.NET Framework là mt thành phn không th thiu ca Windows, nó cho phép
xây dng (building), trin khai (deploying) và thc thi (running) ng dng và dch v
Web. Nó đc phát trin nhm gii quyt nhng vn đ sau :
o Làm cho vic lp trình d dàng và nhanh hn.
o Gim thiu s lng mã (code).
o Có th t to ra mô hình lp trình.
o Tng thêm tính th bc ca các điu khin.
o To ra nhiu lp th vin hn.
o Vic h tr tt hn ca các công c lp trình.
.NET Framework có hay thành phn ch yu là : b thc thi ngôn ng chung
(Common Language Runtime) và các th vin lp ( class) .NET Framework.
o Common Language Runtime đc xây dng da trên các dch v ca h điu
hành. Nó chu trách nhim thc hin các ng dng và đm bo cho các thành
phn liên quan đu có th đáp ng đc.

o Th vin các lp c s .NET Framework cung cp mt danh sách các lp
hng đi tng, có th bc, có th m rng và đc s dng cho bt k ngôn
ng lp trình nào.
.NET Framework đc chia thành b các tác v cho tng chc nng gm các lp
(class), các cu trúc (structures), các giao din (interfaces) và các lõi (core) thành phn
chng tr̀nh. Trc khi s dng thành phn nào ta phi hiu c bn v chc nng, các
t chc ca nó. Mi mt trong hàng ngàn các tng lp đc nhóm theo trình t logic,
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 10

th bc đc gi là mt không gian tên (namespace). Mi namespace cung cp mt
tính nng.
 ASP.NET lƠ đa ngôn ng
ASP.NET đc biên dch và thc thi da trên môi trng .NET, ngi lp trình
có th to ng dng vi nhiu ngôn ng lp trình trong môi trng .NET. Chúng bao
gm nh : Visual Basic .NET, C# và Jscript.NET. Thêm vào đó, mô h̀nh .NET
Framework thì luôn có trong bt k ng dng ASP.NET nào. Ngi lp trình có th d
dàng s dng nhng tin ích ca các công ngh này, bao gm chy trên môi trng
thi gian thc ca CLR, đánh máy nhanh hn, có tính tha k …
iu quan trng là các ngôn ng chúng ta chn mã ca nó dch đc ra mã ngôn
ng trung gian IL (Intermediate Language). iu đó có ngha là IL là ngôn ng ca
.NET và ch có CLR nhn bit đc IL.
 ASP.NET lƠ hng đi tng (Object-Oriented)
ASP.NET là ngôn ng lp tr̀nh hng đi tng s dng các ngôn ng .NET. Nó
cung cp b các đi tng nh và thc s là mt tng làm vic trên nguyên lý ca
HTTP và HTML. Mã ngun ca chúng ta không đc truy cp toàn b các đi tng
trong .NET Framework nhng có th khai thác tt c các quy c ca mt môi trng
OOP (Object Oriented Programming). Chúng ta có to các lp, giao din, k tha các
lp… Chúng ta có th kim soát đc các đi tng trong chng tr̀nh nh hin th

d liu và các s kin ca đi tng.
 ASP.NET đc biên dch
Mt ng dng ASP.NET luôn luôn đc biên dch, nó không chy bng mã ca
C# hoc Visual Basic mà không đc biên dch trc. Mt ng dng ASP.NET thc
s đc biên dch thông qua 2 giai đon:
o Giai đon đu tiên các mã (code) ta vit (C#, Visual Basic hoc ngôn ng .NET
khác) đc dch bi Microsoft Intermediate Language (MSIL). Giai đon dch
này đc dch t đng khi trang web đu tiên yêu cu. Chúng ta có th thc
hin dch trc. Các tp đc dch thành mã IL (Intermediate Language Code).
o Giai đon tip theo đc dch trc khi trang Web đc thc thi. Ti giai đon
này mã IL đc dch thành bn mã máy (Native Machine Code). Giai đon này
đc gi là Just-In-Time (JIT).
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 11


Hình 2.1 - Quá trình biên dch và thc thi trong ASP.NET
 ASP.NET đc lu tr trên máy bi Common Language Runtime
Khía cnh quan trng nht ca công c ASP.NET là nó chy trong môi trng
thi gian thc (Runtime) ca CLR (Common Language Runtime). CLR là máy o
(virtual machine) trong Microsoft .NET, do có ngôn ng trung gian IL nên khi phát
trin ng dng trên .NET, chúng ta không b ph thuc vào thit b, có ngha là theo
Microsoft nói thì ng dng .NET có th chy trên bt k thit b nào có .NET
Framework. Tt c các namespace, các ng dng, các lp trong b .NET Framework
đc gi tt là b qun lý mã. CLR cng cung cp các dch v quan trng khác nh:
o Qun lý b nh
o Thu nht rác
o Qun lý các tuyn
o X lý ngoi l

o An toàn
 ASP.NET d dàng trin khai và cu hình
Mi s cài đt .NET Framework đu cung cp các lp nh nhau.  trin khai
ng dng ASP.NET chúng ta ch cn sao chép các tp tin vào th mc o trên máy ch
(server) và máy ch ch cn có .NET Framework.
Vic cu hình d dàng đn gin không ph thuc vào IIS (Internet Information
Services). Cu h̀nh trong ASP.NET đc đt trong tp web.config. Tp web.config
đc đ cùng vi th mc cha trang web ca chúng ta. Tp web.config không bao
gi b khóa, chúng ta có th truy cp bt k lúc nào, vic sa tp này hoàn toàn d
dng v̀ chúng đc lu di dng XML.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 12

 Các s kin trong ASP.NET
1. Mt s tp c bn trong ASP.NET
Bng 2.1 - Các tp tin cn bn trong ASP.NET

TP

MIÊU T

*.aspx
Tp này cha toàn b giao din ngi dùng, các tùy chn, các
đon code ng dng.
*.cs
Tp này cha các mã ngun ca C#
web.config
Tp tin dng XML cha cu hình cho ng dng ASP.NET. Nó
bao gm các cu hình v an ninh, qun lý trng thái, qun lý b

nh…
global.asax
Tp tin này đ khai báo các bin toàn cc và phn ng vi các
s kin toàn cc.

2. Chu k sng ca trang web trong ASP.NET (ASP.NET Page Life Cycle)
o Chu k sng đc bt đu khi trình duyt yêu cu mt trang web gi là Session.
o Chu k sng vn tip tc nu:
 Session đang hot đng.
 Ngi s dng tng tác vi giao din web cho đn khi kích hot mt s
kin.
 D liu ca trang (View State) wed đc gi v cho Server.
 Server nhn đc View State và tr li yêu cu t View State.
o Chu k sng kt thúc khi:
 Ngi dùng kt thúc trình duyt.
 Session kt thúc (timeout).

 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 13

3. Mt s các s kin ca trang web (ASP.NET Page Event)
Trình t các s kin xy ra khi thc thi mt trang web.
























Hình 2.2 – Vòng đi ca trang ASP.NET
Bng 2.2 - Các s kin ca trang Web

S KIN

MIÊU T
Pre_Init

Kim tra thuc tính IsPostBack khi ln đu tiên trang web
đang đc x lý.
To mi hoc to mi li các Control đng (Dynamic
Control).
Thit lp trang ch (Master page), thuc tính Theme.
c và thit lp giá tr cho thuc tính Profile.

Page_PreInit()
Page_Init()
Page_InitComplete()
Page_PreLoad()
Page_Load()
Page_PreRender()
Page_Unload()
Nu có Postback thì phát sinh s kin ca điu khin
nh s kin Click ca Button
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 14

Init
Làm ni (Raised) sau khi các Control đã đc khi đng và
các Skin đã đc ng dng. S dng s kin này đ đc
hoc khi to các thuc tính ca Control.
PreLoad
a tt c các trng thái ca điu khin, và sau đó nó x lý
đa d liu lên bao gm thuc tính khi to (Instance).
Load
S dng s kin này đ thit lp thuc tính cho Control,
thit lp các kt ni vi C s d liu.
InitComplete
S dng s kin này đ x lý các tác v có yêu cu khi tt
c các khi to hoàn thành.
Unload
Trang đc gii phóng khi b nh
Error
Khi xy ra li trong trang.

DataBinding
Server Control trên trang đc gn vi ngun d liu.

4. S kin ng dng (Event Application)

Bng 2.3 - Các s kin ng dng
S KIN
MIÊU T
Application_Start
Ngi dùng đu tiên duyt trang web.
Application_End
Khi không còn ngi dùng nào duyt trang web.
Application_Error
Khi có li xy ra trong ng dng
Session_Start
Phng thc này đc gi mi khi mt session đc
gi, ngi lp trình có th dùng phng thc này đ
đm s ngi truy cp vào trang web.
Session_End
Khi ngi dùng đóng tr̀nh duyt hoc Session kt
thúc (time out)
Application_Disposed()
Phng thc này thnh thong đc gi sau khi ng
dng đã tt đi và gii phóng b nh.

Ví d v s kin Application_Start – đm s ngi truy cp vào trang Web
protected void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn


Trang 15

Application[
"HomNay"] = 0;
Application["HomQua"] = 0;
Application["TuanNay"] = 0;
Application["TuanTruoc"] = 0;
Application["ThangNay"] = 0;
Application["ThangTruoc"] = 0;
Application["TatCa"] = 0;
Application["visitors_online"] = 0;
}
2.2. Gii thiu ADO.NET
2.2.1. Gii thiu chung
ADO.NET là mt phn ca .NET Framework, nó đc xem là “b th vin lp”
chu trách nhim x lý d liu trong ngôn ng MS.NET. ADO.NET đc thit k vi
dng d liu “ngt kt ni”, ngha là chúng ta có th ly c mt cu trúc phc tp ca
d liu t database, sau đó ngt kt ni vi database ri mi thc hin các thao tác cn
thit. ây là mt s tin b v mt thit k bi vì thit k ADO trc đây luôn cn duy
trì mt kt ni trong quá trình thao tác d liu.
Mc tiêu chính ca ADO.NET là:
o Cung cp các lp đ thao tác CSDL trong c hai môi trng là phi kt ni
(Disconected data) và kt ni (Connected data).
o Tích hp cht ch vi XML (Extensible Markup Language)
o Tng tác vi nhiu ngun d liu thông qua mô t d liu chung.
o Ti u truy cp ngun d liu (OLE DB & SQL server).
o Làm vic trên môi trng Internet (môi trng phi kt ni – Disconnected
eviroment).


2.2.2. So sánh vi phiên bn ADO
Trc ADO.NET, Microsoft đã có ADO là mt b th vin đ x lý các thao tác
liên quan đn d liu. ADO có tính linh hot, d s dng và đc tích hp trong các
ngôn ng nh Visual Basic, ASP 3.0
Có th coi ADO.NET là mt th h tip theo ca ADO. ADO.NET k tha tt c
nhng u đim ca ADO, đng thi vi ý tng thit k hoàn toàn mi ADO.NET có
mt din mo khác hn so vi tin thân ca nó. Mt vài đc đim ni bt ca
ADO.NET mà ADO không có nh sau:
o ADO.NET đc thit k hoàn toàn da vào XML v̀ XML là chun trao đi
d liu tin b và tt nht trên môi trng Internet hin nay.
o ADO.NET đc thit k hoàn toàn hng đi tng: đây là đc đim chi
phi toàn b các sn phm Microsoft .NET.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 16

2 đc đim trên là 2 đc đim c bn và ni tri ca ADO.NET mà ADO không
có. Sau đây là bng so sánh chi tit v tng khía cnh ca ADO và ADO.NET.

Bng 2.4 – So sánh ADO và ADO.NET
c đim
ADO
ADO.NET
D liu x lý đc
đa vào b nh di
dng
Recordset : tng đng 1
bng d liu trong database
Dataset : tng đng 1
database

Duyt d liu
Recordset ch cho phép
duyt tun t, tng dòng
mt.
Dataset : cho phép duyt
“t do, ngu nhiên”, truy
cp thng ti bng ,dòng
,ct mong mun.
D liu ngt kt ni






Recordset cng có th ngt
kt ni nhng t tng
thit k ban đu ca
Recordset là hng kt ni,
do đó vic ngt kt ni
cng không đc h tr tt
nht.
Dataset đc thit k vi
t tng ban đu là “ngt
kt ni” à h tr mnh m
“ngt kt ni”.
Kh nng vt tng
la







Khi trao đi d liu vi
ADO qua Internet, thng
s dng chun COM,
chun COM rt khó vt
qua đc tng la. Do
vy kh nng trao đi d
liu ADO qua Internet
thng có nhiu hn ch.
ADO.NET trao đi d
liu qua Internet rt d
dàng v̀ ADO.NET đc
thit k theo chun XML,
là chun d liu chính
đc s dng đ trao đi
trên Internet.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 17

2.2.3. Kin trúc ADO.NET

Hình 2.3 – Mô hình kin trúc ADO.NET
Kin trúc ADO.NET có 2 phn:
 Phn kt ni:
Phn này s dng khi ta kt ni vi c s d liu và thao tác d liu, yêu cu phi
thc hin kt ni vi c s d liu khi đang thao tác. Các đi tng ca phn này là:

o Connection: i tng qun lý đóng hoc m kt ni ti Database. Có 2 dng
Connection tu theo ngun d liu là g̀ (OleDb hay SQL Server) đó là
OleDbConnection và SqlConnection.
o Command: i tng thc hin các câu lnh tng tác truy vn, rút trích d
liu t database khi đã thit lp kt ni ti d liu và tr v kt qu. Tng t
nh Connection, Command cng có 2 dng tu theo ngun d liu là gì (OleDb
hay SQL Server) đó là OleDbCommand và SqlCommand.
o DataReader: i tng x lý đc d liu, đc thit k phù hp cho các ng
dng web. Ch X lý 1 dòng d liu ti mt thi đim. Phù hp vi ng dng
web vì x lý nhanh, nh không chim b nh. Cng có 2 dng tùy theo d liu
ngun : OleDbDataReader và SqlDataReader. D liu ca đi tng đc to
ra khi đi tng Command thc hin câu lnh ExecuteReader().
o DataAdapter: ây là đi tng rt quan trng ca ADO.NET, nó là cu ni
ca database và dataset (dataset là đi tng ngt kt ni), bi v̀ đi tng
“ngt kt ni” dataset không th liên lc trc tip vi database nên nó cn mt
đi tng trung gian ly d liu t database cho nó. Và đó chính là
DataAdapter. Vì DataAdpater khi thao tác vi Database vn phi duy trì kt ni
nên nó đc lit kê vào dng “kt ni”, nhng bn cht là phc v cho vic
“ngt kt ni”.
 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 18

 Phn ắngt kt ni”:
Ch có mt đi tng chu trách nhim ngt kt ni đó chính là DataSet. DataSet
không cn bit gì v Database thuc kiu gì, kt ni ra sao. Nhim v ca DataSet là
nhn d liu v t DataAdapter và x lý nó. DataSet có th đc xem nh 1 Database
trong b nh gm tt c các bng ,quan h …DataSet có nhiu đi tng đc xem là
“con” tc là cp thp hn đi kèm vi nó nh: DataTable ( tng đng vi 1 bng
trong database) , cp thp hn ca DataTable có các đi tng DataRow (tng đng

vi 1 dòng), DataColumn( tng đng vi 1 ct), DataRelation (tng đng vi các
quan h). Ngoài ra còn có các đi tng nhóm: ví d nh DataTableCollection,
DataRowCollection, DataColumnCollection. Vic s dng DataSet là mt tin b ln
ca kin trúc ADO.NET tuy nhiên vi các ng dng Web, vic s dng DataSet không
đc khuyn khích v̀ đi tng DataSet đc xem là quá ln, nng n khó thích hp
cho đng truyn trên web vn rt hn ch.
2.2.4. ụ ngha ca vic x lỦ d liu ngt kt ni trong ng dng Web
ng dng web là nhng ng dng có rt nhiu ngi dùng. Ti mt thi đim có
th có hàng vn ngi dùng truy cp vào web. Chính vì vy, rt d xy ra tình trng
quá ti, d làm cho server b tn hi. Vic x lý ngt kt ni có ý ngha gim thiu s
ngi dùng truy cp 1 lt vào Web. Ngha là khi 1 ngi truy cp vào Website, các
d liu mà anh ta cn s đc ly xung sau đó không kt ni vào Database Server
na sau đó thc hin các thao tác d liu.
Tuy nhiên mt trái ca vic này cng có là Web Server cng s phi x lý mt
lng d liu khá ln trong b nh. Nh vy, ta có th gim thiu vic truy cp vào
database nhng Web Server li phi x lý nhiu hn.
Chính v̀ lý do đc/mt nh trên mà x lý ngt kt ni phi vô cùng khéo léo
trong ng dng web. Ta ch nên x lý ngt kt ni cho nhng d liu chung thng
dùng, ít thay đi mà thôi. Không nên quá lm dng vì tt c nhng vn đ đu có mt
trái ca nó.
2.2.5. i tng Connection
i tng Connection là đi tng chu trách nhim qun lý kt ni ti ngun d
liu (DataSource). Có 2 dng Connection tng ng vi 2 kiu d liu SQL Server và
OLEDB đó là: SqlConnection và OleDbConnection. C 2 đi tng này đu
implement t interface IDbConnection. Bng cách s dng Interface IDbConnection,
các nhà cung cp dch v Database khác nhau có th to ra các cài đt phù hp cho
Database riêng ca h.
i tng Connection ca ADO.NET ch nhn mt tham s đu vào là chui kt
ni (connection string). Trong chui kt ni, các thông s đc cách nhau bng du
“;”, connection string có các thông s sau:

 Tài - Xây Dng H Thng Qun Lý Bán Hoa Trc Tuyn

Trang 19

o Provider: Tên nhà cung cp Database, đi vi OLEDB cn khai báo là
SQLOLEDB. i vi SQL Server thì không thuc tính này.
o DataSource (hoc Server) : tên/đa ch database server cn kt ni ti.
o Initial catalog (hoc Database) : tên ca Database cn truy xut.
o Uid : username đ đng nhp vào Database Server.
o Pwd : password đ đng nhp vào Database Server.
Sau đây là ví d v 1 chui kt ni đi vi Database dng OLE DB:
Provider=SQLOLEDB ;Data Source=MySQL; Initial
Catalog=NorthWind; uid=sa; pwd=sa;
Còn đây là ví d v 1 chui kt ni đi vi Database dng SQL Server:
Server=ThanhTai-PC;Integrated
Security=SSPI;Database=KhoaLuan

Sau đây là các thuc tính, phng thc, s kin thông dng ca c SqlConnection
và OleDbConnection:
 Thuc tính
o ConnectionString: thuc tính thit lp/ ly chui kt ni.
o ConnectionTimeout: thuc tính thit lp/ ly thi gian ch trong khi truy
xut vào database. Khi truy xut vào Database, chng tr̀nh s ch đúng
khong thi gian này nu ch qua khong thi gian này mà vn không kt
ni đc vào database th̀ chng tr̀nh s báo li.
o Database: thuc tính thit lp/ ly tên database ca đi tng connection
hin thi.
o DataSource: thuc tính thit lp/ly tên ca database server ca đi tng
connection hin thi.
o State: Ly trng thái hin thi ca Connection có các trng thái sau:

Connecting, Broken, Open, Closed, Executing, Fetching.
 Phng thc
o BeginTransaction: s dng cho trng hp x lý giao tác ca ng dng.
Vic x lý giao tác rt có li trong khi x lý d liu t database vì có lúc
trong khi x lý d liu gp li thì có th thc hin câu lnh nh Rollback
hay trong lúc thao tác cng có th thc hin đc các giao tác chính nh
trên SQL Server nh Commit…
o Close: đóng 1 connection.

×