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

Trang web bán hàng sản phẩm Biti's qua mạng của trung tâm Biti's Tây Nguyên - chi nhánh Nha Trang

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 (922.88 KB, 34 trang )

 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
1
c lc
Chng 1 2
 S LÝ THUYT 2
1.1. Gii thiu  tài 2
1.2. Gii thiu các công c xây dng ng dng 2
1.2.1.Gii thiu s lc v .NET Framework 3
1.2.2.Biên dch và MSIL 6
1.2.3.Gii thiu v qun tr d liu .NET 7
1.2.4.Xây dng ng dng theo mô hình a lp (Multi-tier) 8
Chng 2 10
PHÂN TÍCH VÀ THIT K 10
2.1. Phân tích hin trng 10
2.2. Thit k 11
2.2.1.Thit k d liu 11
2.2.1.1.Mô hình quan nim d liu 11
2.2.1.2.Mô hình t chc d liu 12
2.2.1.3.Mô hình vt lý d liu 13
2.2.2.Các modul chc nng ca trang web 18
2.2.3.Thit k giao din 21
Chng 3 23
XÂY DNG CHNG TRÌNH 23
3.1. Mt s hàm và th tc trong chng trình 23
3.1.1.Tng c s d liu 23
3.1.2.Lp thc hin kt ni vi c s d liu 24
3.2. Mt s hình nh v giao din ca chng trình 28
Chng 4 33
KT LUN 33
1. Kt qut c 33


2. ng phát trin 33
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
2
Chng 1
 S LÝ THUYT
1.1. Gii thiu  tài
S phát trin mnh m ca Internet ã to ra nhiu thay i trong mi mt i
sng xã hi, giúp cho con ngi d dàng trao i thông tin cng nh tìm kim thông
tin mt cách nhanh chóng. c bit vi s phát trin ca Internet ã to ra nhiu c hi
mi trong các lnh vc nh: Qun lý, gii thiu và trng bày sn phm, mua bán trên
internet,…Nhm áp ng c yêu cu ca xã hi,  tài ca em là bán sn phm
Biti's qua mng. Ngi qun lý cng nh khách hàng có th truy cp vào trang Web
bt c lúc nào, bt câu  thc hin nhng nhu cu ca mình mt cách thun tin và
nhanh chóng nh khi thc hin trong mt ca hàng.ây là li th ln ca Internet
em li cho các doanh nghip, nhà sn xut, ngi tiêu dùng,…
V công c phát trin ng dng, công ngh Active Server Pages ca Microsoft
vn còn là cách tng i mi  xây dng các trang Web ng và các ng dng phân
phi Web. Phiên bn mi ASP.NET 2005 là mt bc t phá ln cho các nhà phát
trin, cung cp nhiu công nng và tính linh hot hn bao gi ht, ng thi giúp
chúng ta vit ít mã hn. ASP.NET không chn thun là bc nâng cp quan trng,
mà là mt bc tin nhy vt trong toàn b khái nim v các ng dng ng.
Vi lý do ó, em ã tìm hiu v công c Internet và xây dng ng dng “Trang
web bán hàng sn phm Biti's qua mng ca trung tâm Biti's Tây Nguyên chi nhánh
Nha Trang”, vi công ngh mi ca Microsoft là ASP.NET 2005.
Trong cun báo cáo  tài thc tp này em xin trình bày các vn  chính sau:
• Tìm hiu v công c Web ASP.NET
• Tìm hiu v h qun tr c s d liu SQL Server
• Phân tích và thit k c s d liu  xây dng ng dng trang Web cho sn
phm Biti's vi mô hình a lp (Multi-tier).

1.2. Gii thiu các công c xây dng ng dng
SQL Server là h qun tr c s d liu quan h qun lý d liu phân tán rt
thông dng và hiu qu ca Microsoft, nó giúp ta d dàng kim soát c các giao
dch trên mng, m bo c s nht quán và toàn vn d liu cng nh gii quyt
các tng tranh.
.NET là công ngh mi ca Microsoft gm 2 phn chính: Framework và Integrated
Development Environment (IDE). Framework cung cp nhng gì cn thit và cn bn,
ch Framework có ngha là khung hay khung cnh trong ó ta dùng nhng h tng c
s theo mt qui c nht nh  công vic c trôi chy. IDE thì cung cp mt môi
trng giúp chúng ta trin khai d dàng, và nhanh chóng các ng dng da trên nn
tng .NET. Nu không có IDE chúng ta cng có th dùng mt trình son tho nh
Notepad hay bt c trình son tho vn bn nào và s dng command line  biên dch
và thc thi, tuy nhiên vic này mt nhiu thi gian. Tt nht là chúng ta dùng IDE phát
trin các ng dng, và cng là cách d s dng nht.
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
3
Thành phn Framework là quan trng nht ca công ngh .NET là ct lõi và tinh hoa
ca môi trng, còn IDE ch là công c phát trin da trên nn tng ó. Trong .NET
toàn b các ngôn ng C#, Visual C++ hay Visual Basic.NET u dùng cùng mt IDE.
Tóm li Microsoft .NET là nn tng cho vic xây dng và thc thi các ng dng
phân tán th h k tip. Bao gm các ng dng t client n server và các dch v
khác. Microsoft .NET cho phép nhng nhà phát trin thc hin các tính nng sau:
Ø Mt mô hình lp trình cho phép nhà phát trin xây dng các ng dng dch v
web và ng dng client vi Extensible Markup Language (XML).
Ø Tp hp dch v XML Web, nh Microsoft .NET My Services cho phép
nhà phát trin n gin và tích hp ngi dùng kinh nghim.
Ø Cung cp các server phc v bao gm: Windows 2000, SQL Server, và
BizTalk Server, tt cu tích hp, hot ng, và qun lý các dch v XML
Web và các ng dng.

Ø Các phn mm client nh Windows XP và Windows CE giúp ngi phát trin phân
phi sâu và thuyt phc ngi dùng kinh nghim thông qua các dòng thit b.
Ø Nhiu công c h tr nh Visual Studio .NET,  phát trin các dch v Web
XML, ng dng trên nn Windows hay nn web mt cách d dàng và hiu qu.
1.2.1. Gii thiu s lc v .NET Framework
.NET Framework là mt platform mi làm n gin vic phát trin ng dng trong
môi trng phân tán ca Internet. .NET Framework c thit ky áp ng
theo quan im sau:
o Cung cp mt môi tng lp trình hng i tng vng chc, trong ó
mã ngun i tng c lu tr và thc thi mt cách cc b. Thc thi cc b
nhng c phân tán trên Internet, hoc thc thi t xa.
o Cung cp mt môi trng thc thi mã ngun mà ti thiu c vic óng gói phn
mm và s tranh chp v phiên bn.
o Cung cp mt môi trng thc thi mã ngun mà m bo vic thc thi an toàn mã
ngun, bao gm c vic mã ngun c to bi hãng th ba hay bt c hãng nào
mà tuân th theo kin trúc .NET.
o Cung cp mt môi trng thc thi mã ngun mà loi bc nhng li thc hin
các script hay môi trng thông dch.
o Làm cho nhng ngi phát trin có kinh nghim vng chc có th nm vng nhiu
kiu ng dng khác nhau.T nhng ng dng trên nn Windows n nhng ng
dng da trên web.
.NET Framework có hai thành phn chính: Common Language Runtime (CLR) và
th vin lp .NET Framework. CLR là nn tng ca .NET Framework. Chúng
ta có th hiu runtime nh là mt agent qun lý mã ngun khi nó c thc thi, cung
cp các dch v ct lõi nh: qun lý b nh, qun lý tiu trình, và qun lý t xa. Ngoài
ra nó còn thúc y vic s dng kiu an toàn và các hình thc khác ca vic chính xác
mã ngun, m bo cho vic thc hin c bo mt và mnh m. Tht vy, khái nim
qun lý mã ngun là nguyên lý nn tng ca runtime. Mã ngun mà ích ti
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s

4
Hình 1.1: Mô t các thành phn trong .NET Framework.
runtime thì c bit nh là mã ngun c qun lý (managed code). Trong khi
ó mã ngun mà không có ích ti runtime thì c bit nh mã ngun không c
qun lý (unmanaged code).
Th vin lp, mt thành phn chính khác ca .NET Framework là mt tp hp
ng i tng ca các kiu d liu c dùng li, nó cho phép chúng ta có th phát
trin nhng ng dng t nhng ng dng truyn thng command-line hay nhng ng
dng có giao din  ha (GUI) n nhng ng dng mi nht c cung cp bi
ASP.NET, nh là Web Form và dch v XML Web.
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
5
Common Language Runtime (CLR)
CLR thúc y vic mã ngun thc hin vic truy cp c bo mt. Ví d, ngi
s dng gii hn rng vic thc thi chúng vào trong mt trang web có th chy c
hot hình trên màn hình hay hát mt bn nhc, nhng không th truy cp c d liu
riêng t, tp tin h thng, hay truy cp mng. Do ó, c tính bo mt ca CLR cho
phép nhng phn mm óng gói trên Inernet có nhiu c tính mà không nh hng
n vic bo mt h thng.
CLR còn thúc y cho mã ngun c thc thi mnh m hn bng vic thc thi mã
ngun chính xác và s xác nhn mã ngun. Nn tng ca vic thc hin này
là Common Type System (CTS). CTS m bo rng nhng mã ngun c qun
lý thì c t mô t (self- describing). S khác nhau gia Microsoft và các trình biên
dch ngôn ng ca hãng th ba là vic to ra các mã ngun c qun lý có th thích
hp vi CTS. iu này thì mã ngun c qun lý có th s dng nhng kiu c
qun lý khác và nhng th hin, trong khi thúc y nghiêm ngt vic s dng kiu d
liu chính xác và an toàn.
Th vin lp .NET Framework
Th vin lp .NET Framework là mt tp hp nhng kiu d liu c dùng li và

c kt hp cht ch vi Common Language Runtime. Th vin lp là hng i
ng cung cp nhng kiu d liu mà mã ngun c qun lý ca chúng ta có th dn
xut. u này không ch làm cho nhng kiu d liu ca .NET Framework d s dng
mà còn làm gim thi gian liên quan n vic hc c tính mi ca .NET Framework.
Thêm vào ó, các thành phn ca các hãng th ba có th tích hp vi nhng lp trong
.NET Framework.
Cng nh mong i ca ngi phát trin vi th vin lp ng i tng, kiu d
liu . NET Framework cho phép ngi phát trin thit lp nhiu mc  thông dng ca
vic lp trình, bao gm các nhim v nh: qun lý chui, thu thp hay chn lc d liu,
kt ni vi c s d liu, và truy cp tp tin. Ngoài nhng nhim v thông dng trên.
Th vin lp còn a vào nhng kiu d liu  h tr cho nhng kch bn phát trin
chuyên bit khác. Ví d ngi phát trin có th s dng .NET Framework  phát trin
nhng kiu ng dng và dch v nh sau:
ü ng dng Console (giao tip ngi-máy)
ü ng dng giao din GUI trên Windows (Windows Forms) ng dng ASP.NET
ü Dch v XML Web
ü Dch v Windows
Trong ó nhng lp Windows Forms cung cp mt tp hp ln các kiu d liu
nhm làm n gin vic phát trin các ng dng GUI chy trên Windows. Còn nu
nh vit các ng dng ASP.NET thì có th s dng các lp Web Forms trong th vin
.NET Framework.
Phát trin ng dng Client
Nhng ng dng client cng gn vi nhng ng dng kiu truyn thng c lp
trình da trên Windows. ây là nhng kiu ng dng hin th nhng ca s hay nhng
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
6
form trên desktop cho phép ngi dùng thc hin mt thao tác hay nhim v nào ó.
Nhng ng dng client bao gm nhng ng dng nh x lý vn bn, x lý bng tính,
nhng ng dng trong lnh vc thng mi nh công c nhp liu, công c to báo

cáo Nhng ng dng client này thng s dng nhng ca s, menu, toolbar, button
hay các thành phn GUI khác, và chúng thng truy cp các tài nguyên cc b nh là
các tp tin h thng, các thit b ngoi vi nh máy in.
Mt loi ng dng client khác vi ng dng truyn thng nh trên là ActiveX
control (hin nay nó c thay th bi các Windows Form control) c nhúng vào
các trang web trên Internet. Các ng dng này cng ging nh nhng ng dng client
khác là có th truy cp tài nguyên cc b.
Trong quá kh, nhng nhà phát trin có th to các ng dng s dng C/C++ thông
qua kt ni vi MFC hoc s dng môi trng phát trin ng dng nhanh
(RAD: Rapid Application Development). .NET Framework tích hp din mo ca
nhng sn phm thành mt. Môi trng phát trin cnh làm n gin mnh m s
phát trin ca ng dng client.
Nhng lp .NET Framework cha trong .NET Framework c thit k cho vic s
dng phát trin các GUI. u này cho phép ngi phát trin nhanh chóng và d dàng
to các ca s, button, menu, toolbar, và các thành phn khác trong các ng dng c
vit phc v cho lnh vc thng mi. Ví d nh, .NET cung cp nhng thuc tính n
gin  hiu chnh các hiu ng visual liên quan n form. Trong vài trng hp h
iu hành không h tr vic thay i nhng thuc tính này mt cách trc tip, và trong
trng hp này .NET tng to li form. ây là mt trong nhiu cách mà .NET tích
hp vic phát trin giao din làm cho mã ngun n gin và mnh m hn.
Không ging nh ActiveX control, Windows Form control có s truy cp gii hn
n máy ca ngi s dng. u này có ngha rng mà ngun thc thi nh phân có th
truy cp mt vài tài nguyên trong máy ca ngi s dng (nh các thành phn  ha
hay mt s tp tin c gii hn) mà không th truy cp n nhng tài nguyên khác.
Nguyên nhân là s bo mt truy cp ca mã ngun. Lúc này các ng dng c cài t
trên máy ngi dùng có th an toàn a lên Internet.
1.2.2. Biên dch và MSIL
Trong .NET Framework, chng trình không c biên dch vào các tp tin thc
thi mà thay vào ó chúng c biên dch vào nhng tp tin trung gian gi là Microsoft
Intermediate Language (MSIL). Nhng tp tin MSIL c to ra t C# cng tng t

nh các tp tin MSIL c to ra t nhng ngôn ng khác ca .NET, platform ây
không cn bit ngôn ng ca mã ngun. u quan trng chính yu ca CLR là chung
(common), cùng mt runtime h tr phát trin trong C# cng nh trong VB.NET.
Mã ngun C# c biên dch vào MSIL khi chúng ta build project. Mã MSIL này
c u vào trong mt tp tin trên a. Khi chúng ta chy chng trình, thì MSIL
c biên dch mt ln na, s dng trình biên dch Just-In-Time (JIT). Kt qu là mã
máy c thc thi bi b x lý ca máy.
Trình biên dch JIT tiêu chun thì thc hin theo yêu cu. Khi mt phng thc
c gi, trình biên dch JIT phân tích MSIL và to ra sn phm mã máy có hiu qu
cao, mã này có th chy rt nhanh. Trình biên dch JIT  thông minh  nhn ra khi
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
7
mt mã ãc biên dch, do vy khi ng dng chy thì vic biên dch ch xy ra khi
cn thit, tc là ch biên dch mã MSIL cha biên dch ra mã máy. Khi ó mt ng
dng .NET thc hin, chúng có xu hng là chy nhanh và nhanh hn na, cng nh
là nhng mã ngun c biên dch ri thì c dùng li.
Do tt c các ngôn ng .NET Framework cùng to ra sn phm MSIL ging nhau,
nên kt qu là mt i tng c to ra t ngôn ng này có thc truy cp hay
c dn xut t mt i tng ca ngôn ng khác trong .NET. Ví d, ngi phát
trin có th to mt lp c s trong VB.NET và sau ó dn xut nó trong C# mt
cách d dàng.
1.2.3. Gii thiu v qun tr d liu .NET
a) D liu tách ri (disconnect fashion)
iu này có ngha là ta cn các công ngh truy cp d liu ó h khách có th
truy cp, ti xung và lp cache d liu ã yêu cu, sau ó ngt kt ni vi h phc v
 s d liu hoc kho lu tr d liu. Mt khi sn sang, chúng cn có kh nng ni li
và cp nht kho lu tr d liu ban u bng các chi tit thay i.
Làm vic vi d liu tách ri, ta có mt khía cnh khác ny sinh khi di t mt mô
hình khách/phc v vào th gii ca ng dng n-tng. Mt môi trng phân phi ng

ý h khách và h phc v tách bit, c ni bi mt mng.
b) Tin hoá ca ADO
Các công ngh truy cp d liu tin ADO, chng hn nh DAO (Data Access
Objects) và RDO (Remote Data Objects) ã c thit k cung cp các phng
pháp truy cp d liu m cho th gii khách/phc v-và rt thành công trong môi
trng ó. Ví d, nu ta xây dng các ng dng Visual Basic  truy cp SQL trên
mng cc b, chúng làm vic suôn s.
c) Mã qun lý (managed code)
.NET Framework không phi là mt hu hành mi. Nó là mt lot các lp và
môi trng thi gian chy có qun lý trong ó mã ca ta có thc thi hành.
d) Mô hình lp trình mi
Ta vit bng các ngôn ng “úng n”, ch không phi là các tp lnh (script). Ta
có th dùng C# hoc bt k mt trong s ngôn ng khác sn có hoc ang phát
trin trong nn tng .NET.
e) Các namespace tên h thng cho qun tr d liu
Các lp qun tr d liu quan h mi nm trong mt lot các không gian tên da
vào System.Data bên trong th vin lp.
Cng có mt lot namespace tên tách bit cha các lp mà ta dùng  làm vic vi
XML thay vì vi d liu quan h. Các không gian tên này da vào System.xml.
f) Các i tng ADO.NET cn bn
Truy cp d liu truyn thng vi ADO xoay quanh i tng kho lu tr d liu
cn bn-Recordset. K thut c dùng  ay là to mt tuyn ni vi mt kho lu tr
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
8
d liu dung mt trình cung cp, sau ó thi hành các lnh trên nó tr v mti tng
Recordset cha d liu thích hp.
g) So sánh các k thut trong ADO và ADO.NET
Và ây là nhng im khác bit:
Ø Không có dng tng ng trc tip ca i tng Recordset. Tu thuc

vào công vic munt c, ta dùng mt DataReader hoc mt Dataset.
Ø Các con tr [cursors] phía khách và phía h phc v (c s d liu) không
c dùng trong ADO.NET. Mô hình tách ri có ngha là chúng không áp
dng c.
Ø Chc nng khoá (locking) c s d liu không c h tr hoc c yêu
cu. Mt ln na, vi mô hình tách ri, chúng không áp dng c.
Ø Tt c d liu c dch sang dng XML. Không có các phn biu th nh
phân hoc mã hoá MIME cho các tp hang hoc các cu trúc d liu khác.
1.2.4. Xây dng ng dng theo mô hình a tng (Multi-tier)
User Services Business Services Data Services
Các i tng
qun.lý logic nghip
v: Thông tin v S
n
phm, v khách
hàng,
ASP.NET Pages SQL Server
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
9
ng dng c xây dng theo mô hình a tng (multi-tier), mô hình thit kng
dng rt ph bin hin nay. Vi mô hình này, ng dng phân rã chc nng ca tng
n th mc ti a, các nghip v x lý logic ca ng dng c cài t thành
nhng i tng riêng bit.
C th, ng dng c xây dng phân rã thành 3 tng: Tng dch v ngi dùng
(User Service) cha các trang ASP.NET nh dng giao din và triu gi i tng 
tng x lý nghip v (Business Logic Service). Các i tng  tng Business Service
thc hin chc nng chính ca chng trình bao gm mã lnh tách ri phn nh dng
HTML. Vic kt ni và truy xut d liu c thc hin  tng th 3 ó là tng dch
v h tr c s d liu (Database Service).

Nh vy, nu mun chuyn ng dng sang môi trng khác, chúng ta vn có th
dùng nhng i tng này mà không cn phi thay i gì thêm. ây chính là tính mm
do và d dàng nâng cp (Scalable) ca mô hình ng dng a tng.
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
10
Chng 2
PHÂN TÍCH VÀ THIT K
2.1. Phân tích hin trng
Công ty sn xut hàng tiêu dùng Bình Tiên chi nhánh Biti’s Nha Trang, chuyên
cung cp các mt hàng v giày dép Biti's cho các i lý.
v Qun lý sn phm Biti's:
Công ty sn xut hàng tiêu dùng Bình Tiên (Trung tâm Biti’s Tây Nguyên) khi
qun lý trên web cn có nhng thông tin sau: Tên sn phm, giá bán, màu sc (ch
qun lý nhng sn phm có màu xác nh), kích c (size), sn phm ó thuc loi nào,
và dành cho i tng ngi tiêu dùng nào, hình nh v sn phm ó.
v Qun lý khách hàng:
Mi khách hàng ca trung tâm u c qun lý nhng thông tin chính sau: H,
tên, a ch, sn thoi, s fax, a ch email (dùng ng nhp web), password,
tên ca hàng kinh doanh ca khách hàng.
v Qun lý nhân viên:
Mt nhân viên ca trung tâm Bitis ch cn qun lý trên nhng thông tin: H, tên
nhân viên, sn thoi, a ch ca nhân viên, và chc v.
v Quy trình qun lý bán sn phm Biti's:
Khi khách hàng thc thin giao dch, lp n t hàng trên web thì cn có thông
tin: Tt c các thông tin v khách hàng, thông tin v loi sn phm mà khách hàng
chn mua, s lng, thông tin ngày t hàng và ngày giao hàng hn chót. Vi các i
lý t hàng sn phm mi ca công ty sc chit khu giá tr ca tng loi sn
phm, và thu giá tr gia tng ca sn phm ã c công ty tr.
Khi khách hàng ã có n t hàng, trung tâm c nhân viên mang hàng xung tn

a ch ca khách hàng trc hoc ngay trong ngày giao hàng trong n t hàng, vi
các i lý sc chuyn hàng ti mà không mt phí vn chuyn. Vi khách hàng
vãng lai, mua vi s lng ít, tùy vào tng u kin khách hàng có th ti i lý gn
nht ca trung tâm Biti’s  ly hàng.
Sau khi ã giao hàng, khách hàng nhn hóa n t hàng và thanh toán bng tin
mt. Nu là khách hàng quen có th cha thanh toán hoc thanh toán mt phn.
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
11
2.2. Thit k
2.2.1. Thit k d liu
2.2.1.1. Mô hình quan nim d liu
1,n
1,1
1,n
1,1
1,n
1,1
1,n
1,1
1,n
1,n
1,n
1,1
1,1
1,n
1,n
1,1
1,n
1,1

1,n
1,n
1,n
1,1
1,n
1,1
1,n
1,n
1,n
1,n
1,n
1,n
1,1
1,n
1,n
1,n
1,n
1,n
1,n
1,1
1,n
1,1
SANPHAM
MASP
TENSP
DIENGIAI
SIZE
TINHTRANG
HINHANH
<pi>

I
VMBT30
VMBT1000
I
BL
A30
<M>
Identifier_1 <pi>
LOAISP
MALOAI
TENLOAI
TIENCK
<pi>
I
VMBT30
F2
<M>
Identifier_1 <pi>
MAUSP
MAMAU
TENSP
<pi>
I
VMBT30
<M>
Identifier_1 <pi>
DOITUONGSD
MADT
TENDT
<pi>

I
VMBT30
<M>
Identifier_1 <pi>
DONDH
MADONDH
NGAYDH
NGAYGH
<pi>
I
DT
DT
<M>
Identifier_1 <pi>
TINHTRANGDDH
MATINHTRANG
TENTINHTRANG
<pi> I
VMBT30
<M>
Identifier_1 <pi>
KHACHHANG
MAKH
HOKH
TENKH
EMAIL
PASS
DIACHI
SODT
SOFAX

TENCUAHANG
<pi> I
VMBT30
VMBT30
A50
A20
VMBT100
A11
A15
VMBT50
<M>
<M>
<M>
<M>
Identifier_1 <pi>
CONGNO
MANO
SOTIEN
<pi>
I
MN8
<M>
Identifier_1 <pi>
BANGGIA
MANGAY
NGAY
<pi>
I
DT
<M>

Identifier_1 <pi>
CHUCVU
MACV
TENCV
<pi> I
VMBT30
<M>
Identifier_1 <pi>
PHIEUTRA
MAPHIEU
NGAYTRA
<pi>
I
DT
<M>
Identifier_1 <pi>
NHANVIEN
MANV
HONV
TENNV
SODT
DIACHI
<pi>
I
VMBT30
VMBT30
A11
VMBT100
<M>
Identifier_1 <pi>

TINH
MATINH
TENTINH
<pi>
I
VMBT30
<M>
Identifier_1 <pi>
HOADON
MAHD
NGAYGH
<pi>
I
DT
<M>
Identifier_1 <pi>
SP_LOAI
SP_MAU
SP_DT
HD_TT
CHITIETDDH
SOLUONG N4
KH_DDH
KH_TINH
NV_TINH
KH_HD
CHITIETHD
SOLUONG N4
NV_HD
NV_PT

HD_NO
LANTHU
N2
PT_NO
LANTHU N2
SP_TRA
SOLUONG N4
NV_CV
SP_GIA
DONGIA MN4
CHITIET DL
SOLUONG N4
GIAOHANG
HD_TRA
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
12
2.2.1.2. Mô hình t chc d liu
SANPHAM(MASP
, TESP, DIENGIAI, SIZE, TINH TRANG, HINHANH, MADT,
MAMAU, MALOAI)
KHACHHANG(MAKH, TENKH, HOKH, EMAIL, PASS, DIACHI, SODT,
SOFAX, TENCUAHANG, MATINH
)
NHANVIEN(MANV, TENNV, HONV, SODT, DIACHI, MATINH, MACV)
DOITUONGSD(MADT
, TENDT)
MAUSP(MAUSP, TENSP)
LOAISP(MALOAI, TENLOAI, TIENCK)
TINHTRANGDDH(MATINHTRANG

, TENTINHTRANG)
DONDH(MADONDH, NGAYDH, NGAYGH, MATINHTRANG, MAKH)
HOADON(MAHD
, NGAYGH, MAKH, MADONDH, MANV)
CONGNO(MANO, SOTIEN)
PHIEUTRA(MAPHIEU
, NGAYTRA, MANV, MAHD)
TINH(MATINH
, TENTINH)
CHUCVU(MACV
, TENCV)
BANGGIA(MANGAY
, NGAY)
SP_GIA(MASP
, MANGAY, DONGIA)
SP_TRA(MAPHIEU, MASP, SOLUONG)
PT_NO(MAPHIEU, MANO, LANTHU)
HD_NO(MAHD, MANO, LANTHU)
CHITIETHD(MAHD
, MASP, SOLUONG)
CHITIETDDH(MADONDH, MASP, SOLUONG)
CHITIETDL(MADONDH, MALOAI, SOLUONG)
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
13
2.2.1.3. Mô hình vt lý d liu
SANPHAM(MASP
, TESP, DIENGIAI, SIZE, TINHTRANG, HINHANH, MADT,
MAMAU, MALOAI)
KHACHHANG(MAKH, TENKH, HOKH, EMAIL, PASS, DIACHI, SODT,

SOFAX, TENCUAHANG, MATINH
)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MASP(K) int 4 Len()=4
TENKH nvarchar 30
HOKH nvarchar 30
TENCUAHANG nvarchar 50
EMAIL char 50
PASS char 20
DIACHI nvarchar 100
SODT char 11
MATINH int 4 Lookup(MATINH)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MASP (K) int 4 Len() = 4
TENSP nvarchar 30
DIENGIAI nvarchar 1000
SIZE int 4
TINHTRANG bit 1
HINHANH char 30
MAMAU int 4 Lookup(MAMAU)
MADT int 4 Lookup(MADT)
MALOAI int 4 Lookup(MALOAI)
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
14
NHANVIEN(MANV, TENNV, HONV, SODT, DIACHI, MATINH, MACV)
DOITUONGSD(MADT, TENDT)
MAUSP(MAUSP
, TENSP)
LOAISP(MALOAI, TENLOAI, TIENCK)

Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANV (K) int 4 Len() = 4
TENNV nvarchar 30
HONV nvarchar 30
SODT char 11
DIACHI nvarchar 100
MATINH int 4 Lookup(MAMAU)
MACV int 4 Lookup(MACV)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADT (K) int 4 Len() = 4
TENDT nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAMAU (K) int 4 Len() = 4
TENMAU nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MALOAI (K) int 4 Len() = 4
TENLOAI nvarchar 30
TIENCK float 2
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
15
TINHTRANGDDH(MATINHTRANG, TENTINHTRANG)
DONDH(MADONDH, NGAYDH, NGAYGH, MATINHTRANG, MAKH)
HOADON(MAHD
, NGAYGH, MAKH, MADONDH, MANV)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAHD(K) int 4 Len() = 4
NGAYGH datetime 8 <=Date()
MAKH int 4 Lookup(MAKH)
MADONDH int 4 Lookup(MADONDH)

MANV int 4 Lookup(MANV)
CONGNO(MANO, SOTIEN)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MATINHTRANG (K) int 4 Len() = 4
TENTINHTRANG nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADONDH (K) int 4 Len() = 4
NGAYDH datetime 8 = Date()
NGAYGH datetime 8 >= Date()
MAKH int 4 Lookup(MAKH)
MATINHTRANG int 4
Lookup (MATINHTRANG )
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANO (K) int 4 Len() = 4
SOTIEN money 8
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
16
PHIEUTRA(MAPHIEU, NGAYTRA, MANV, MAHD)
TINH(MATINH
, TENTINH)
CHUCVU(MACV
, TENCV)
BANGGIA(MANGAY, NGAY)
SP_GIA(MASP, MANGAY, DONGIA)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4
NGAYTRA datetime 8 = Date()
MAHD int 4 Lookup (MAHD)
MANV int 4 Lookup(MANV)

Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MATINH (K) int 4 Len() = 4
TENTINH nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MACV (K) int 4 Len() = 4
TENCV nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANGAY (K) int 4 Len() = 4
NGAY datetime 8
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANGAY (K) int 4 Len() = 4
MANSP(K) int 4 Len()=4
DONGIA money 8
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
17
SP_TRA(MAPHIEU, MASP, SOLUONG)
PT_NO(MAPHIEU
, MANO, LANTHU)
HD_NO(MAHD
, MANO, LANTHU)
CHITIETHD(MAHD, MASP, SOLUONG)
CHITIETDDH(MADONDH
, MASP, SOLUONG)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4

MANO(K) int 4 Len()=4
LANTHU numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAHD (K) int 4 Len() = 4
MANO(K) int 4 Len()=4
LANTHU numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAHD (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADONDH (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
18
CHITIETDL(MADONDH, MALOAI, SOLUONG)
2.2.2. Các modul chc nng ca trang web
v Cp nht sn phm Biti’s
INPUT: Thông tin mi ca Sn phm.
OUTPUT: Có thông tin ca Sn phm, tr li
BEGIN
Nhn “thông tin Sn phm mi”
FIND Tên Sn phm trong bng Sn phm  xem Tên Sn phm có nm
trong “Thông tin Sn phm mi”?
IF FOUND
Output Tr li= “ã có Sn phm trong bng Sn phm”
ELSE
Write Thông tin mi vào trong bng Sn phm

END IF
END.
v Cp nht loi Sn phm
INPUT: Thông tin mi ca Loi Sn phm.
OUTPUT: Có thông tin ca Loi Sn phm, tr li
BEGIN
Nhn “thông tin Loi Sn phm mi”
FIND Tên Loi Sn phm trong bng Loi Sn phm  xem Tên Loi Sn
phm có nm trong “Thông tin Loi Sn phm mi”?
IF FOUND
Output Tr li= “ã có Loi Sn phm trong bng Loi Sn phm”
ELSE
Write Thông tin mi vào trong bng Loi Sn phm
END IF
END.
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADONDH (K) int 4 Len() = 4
MALOAI(K) int 4 Len()=4
SOLUONG numeric 4
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
19
v Cp nht màu Sn phm
INPUT: Thông tin mi ca Màu Sn phm.
OUTPUT: Có thông tin ca Màu Sn phm, tr li
BEGIN
Nhn “thông tin Màu Sn phm mi”
FIND Tên Màu Sn phm trong bng Màu Sn phm xem Tên Màu Sn
phm có nm trong “Thông tin Màu Sn phm mi”?
IF FOUND

Output Tr li= “ã có Màu Sn phm trong bng Màu Sn phm”
ELSE
Write Thông tin mi vào trong bng Màu Sn phm
END IF
END.
v Cp nht nhân viên
INPUT: Thông tin mi ca Nhân Viên.
OUTPUT: Có thông tin ca Nhân Viên, tr li
BEGIN
Nhn “thông tin Nhân Viên mi”
FIND Tên Nhân Viên trong bng Nhân Viên xem Tên Nhân Viên có nm
trong “Thông tin Nhân Viên mi”?
IF FOUND
Output Tr li= “ã có Nhân Viên trong bng Nhân Viên”
ELSE
Write Thông tin mi vào trong bng Nhân Viên
END IF
END.
v Khách hàng ng ký
INPUT: Thông tin mi ca Khách Hàng.
OUTPUT: Có thông tin ca Khách Hàng, tr li
BEGIN
Nhn “thông tin Khách Hàng mi”
FIND Tênng nhp ca Khách Hàng trong bng Khách Hàng xem Tên
ng nhp ca Khách Hàng có nm trong “Thông tin Khách Hàng mi”?
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
20
IF FOUND
Output Tr li= “ã có tên ng nhp trong bng Khách Hàng”

ELSE
Write Thông tin mi vào trong bng Khách Hàng
END IF
END.
v Khách hàng ng nhp
INPUT: Thông tin ca Khách Hàng.
OUTPUT: Có thông tin ca Khách Hàng, tr li
BEGIN
Nhn “thông tin Khách Hàng”
FIND Tênng nhp và pass ca Khách Hàng trong bng Khách Hàng
xem Tên ng nhp và pass ca Khách Hàng có nm trong “Thông tin
Khách Hàng”?
IF FOUND
Output Tr li= “ng nhp thành công.”
ELSE
Write “Kim tra li tên ng nhp và pass”
END IF
END.
v Khách hàng tìm thông tin v sn phm
INPUT: Thông tin v sn phm.
OUTPUT: Có thông tin ca sn phm, tr li
BEGIN
Nhn “thông tin sn phm”
FIND Tên Sn phm trong bng Sn phm  xem Tên Sn phm có nm
trong “Thông tin Sn phm ca khách hàng cn tìm”?
IF FOUND
Output Tr li= “Hin ra các Sn phm có chung thông tin mà khách hàng
cn tìm.”
ELSE
Write “Không có Sn phm nào có thông tin nh ca khách hàng.”

END IF
END.
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
21
v Khách hàng lp hóa n
INPUT: Thông tin v sn phm.
OUTPUT: Có thông tin ca sn phm trong gi hàng, tr li
BEGIN
Nhn “thông tin sn phm”
FIND Tên Sn phm trong gi hàng  xem Tên Sn phm có nm trong gi
hàng hay cha.?
IF FOUND
Output Tr li= “S lng ca sn phm ó tng thêm 1.”
ELSE
Write “a thông tin v sn phm ó vào gi hàng.”
END IF
END.
2.2.3. Thit k giao din
Tin hành tham chiu (References) n lp va to  tng 2 và khai báo kt ni, gi
các hàm cn dùng.
Ví d:
ddlLoaisp.DataSource = LOAISPDB.GetAll();
ddlLoaissp.DataTextField = "TENSP";
ddlLoaisp.DataValueField = "MASP";
ddlLoaisp.DataBind();
Hin th loi SP vào dropdownlist
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
22

 chc nng trang web
Bán Biti's qua mng
Thanh toán
p nht Gi hàng
Gii thiu
Thng kê
n phm
Loi sp
Màu sp
i tng
 dng
Khách hàng
n t hàng
Hóa n
Công n
Hóa n i lý
Bán l
 công ty
 sn phm
Hàng tr li
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
23
Chng 3
XÂY DNG CHNG TRÌNH
Khác vi các trang ASP, các trang ASP.NET sau khi c yêu cu t h phc
v mt h khách yêu cu mt URL có uôi .aspx hay truyn tham s ti trang có
uôi .ascx .Khi ó các thành phn ca trang web ó sc biên dch, bao gm các
thành phn:
ü Tp tin .aspx hoc .ascx ang c yêu cu.

ü Tp tin lp .NET cha mã ca trang ó.
ü Mi u khin ngi dùng (User Control) mà trang s dng.
Vì trang ASP.NET c thit k nh là mt lp, nó cung cp cho ta mt tp hp
các s kin và ta có tht mã u khin bên trong nhng s kin này thay vì trn
ln vi thnh dng HTML. Chính vì vy, các trang .aspx và .ascx rt d dàng thit
k vi các ng dng web do nó c xây dng theo hng i tng, tách ri mã vi
các thnh ràng HTML.
S kin Page_Load luôn phát sinh u tiên mi khi trang .aspx hay .ascx c triu
gi t trình khách. Tip n là các s kin khác ca nhng thành phn u khin bên
trong trang. Sau cùng, khi b din dch ã thc hin xong các yêu cu ca trang, trang
sc gii phóng. Lúc này s kin Page_Unload sc triu gi.
3.1. Mt s hàm và th tc trong chng trình
3.1.1. Tng c s d liu
Thit k bng và th tc lu tr:
- Thit k bng và mô hình quan nim bng Power design.
- Th tc lu tr có cu trúc nh sau:
Ví d:
CREATE PROCEDURE TINH_Insert
(
@TENTINH nvarchar (30)
)
AS
CREATE PROCEDURE
[<Tên th tc lu tr>]
(
Khai báo bin là tham su vào hay ra ca th tc.
)
AS
Các câu lnh SQL
GO

 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
24
INSERT INTO TINH
(
TENTINH
)
VALUES
(
@TENTINH
)
RETURN @@IDENTITY
GO
3.1.2. Lp thc hin kt ni vi c s d liu
Mi bng hay các Views em thit k 2 lp  kt ni vi c s d liu gm: Data
và DataAccess. Trong lp DataAccess, mi th tc Stored Procedures s tng ng
vi 1 th tc c to ra trong lp này.
- i lp Data:
using System;
namespace Bitiss.TINH.Data
{
public class TINHInfo
{
private int _mATINH;
public int MATINH
{
get { return _mATINH; }
set { _mATINH = value; }
}
private string _tENTINH;

public string TENTINH
{
get { return _tENTINH; }
set { _tENTINH = value; }
}
}
}
 án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
25
- Vi lp DataAccess
using System;
using System.Data;
using System.Data.SqlClient;
using Bitiss.Lib;
using Bitiss.TINH.Data;
namespace Bitiss.TINH.DataAccess
{
public class TINHDB
{
public static DataTable GetAll()
{
DataTable retVal = null;
SqlConnection dbConn = new SqlConnection(AppEnv.ConnectionString);
SqlCommand dbCmd = new SqlCommand("TINH_GetAll", dbConn);
dbCmd.CommandType = CommandType.StoredProcedure;
try
{
retVal = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(dbCmd);

da.Fill(retVal);
}
finally
{
dbConn.Close();
}
return retVal;
}
public static void Delete(int _mATINH)
{
SqlConnection dbConn = new SqlConnection(AppEnv.ConnectionString);
SqlCommand dbCmd = new SqlCommand("TINH_Delete", dbConn);
dbCmd.CommandType = CommandType.StoredProcedure;

×