án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
1
c lc
Chng 1 2
S LÝ THUYT 2
1.1. Gii thiu tài 2
1.2. Gii thiu các công c xây dng ng dng 2
1.2.1.Gii thiu s lc v .NET Framework 3
1.2.2.Biên dch và MSIL 6
1.2.3.Gii thiu v qun tr d liu .NET 7
1.2.4.Xây dng ng dng theo mô hình a lp (Multi-tier) 8
Chng 2 10
PHÂN TÍCH VÀ THIT K 10
2.1. Phân tích hin trng 10
2.2. Thit k 11
2.2.1.Thit k d liu 11
2.2.1.1.Mô hình quan nim d liu 11
2.2.1.2.Mô hình t chc d liu 12
2.2.1.3.Mô hình vt lý d liu 13
2.2.2.Các modul chc nng ca trang web 18
2.2.3.Thit k giao din 21
Chng 3 23
XÂY DNG CHNG TRÌNH 23
3.1. Mt s hàm và th tc trong chng trình 23
3.1.1.Tng c s d liu 23
3.1.2.Lp thc hin kt ni vi c s d liu 24
3.2. Mt s hình nh v giao din ca chng trình 28
Chng 4 33
KT LUN 33
1. Kt qut c 33
2. ng phát trin 33
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
2
Chng 1
S LÝ THUYT
1.1. Gii thiu tài
S phát trin mnh m ca Internet ã to ra nhiu thay i trong mi mt i
sng xã hi, giúp cho con ngi d dàng trao i thông tin cng nh tìm kim thông
tin mt cách nhanh chóng. c bit vi s phát trin ca Internet ã to ra nhiu c hi
mi trong các lnh vc nh: Qun lý, gii thiu và trng bày sn phm, mua bán trên
internet,…Nhm áp ng c yêu cu ca xã hi, tài ca em là bán sn phm
Biti's qua mng. Ngi qun lý cng nh khách hàng có th truy cp vào trang Web
bt c lúc nào, bt câu thc hin nhng nhu cu ca mình mt cách thun tin và
nhanh chóng nh khi thc hin trong mt ca hàng.ây là li th ln ca Internet
em li cho các doanh nghip, nhà sn xut, ngi tiêu dùng,…
V công c phát trin ng dng, công ngh Active Server Pages ca Microsoft
vn còn là cách tng i mi xây dng các trang Web ng và các ng dng phân
phi Web. Phiên bn mi ASP.NET 2005 là mt bc t phá ln cho các nhà phát
trin, cung cp nhiu công nng và tính linh hot hn bao gi ht, ng thi giúp
chúng ta vit ít mã hn. ASP.NET không chn thun là bc nâng cp quan trng,
mà là mt bc tin nhy vt trong toàn b khái nim v các ng dng ng.
Vi lý do ó, em ã tìm hiu v công c Internet và xây dng ng dng “Trang
web bán hàng sn phm Biti's qua mng ca trung tâm Biti's Tây Nguyên chi nhánh
Nha Trang”, vi công ngh mi ca Microsoft là ASP.NET 2005.
Trong cun báo cáo tài thc tp này em xin trình bày các vn chính sau:
• Tìm hiu v công c Web ASP.NET
• Tìm hiu v h qun tr c s d liu SQL Server
• Phân tích và thit k c s d liu xây dng ng dng trang Web cho sn
phm Biti's vi mô hình a lp (Multi-tier).
1.2. Gii thiu các công c xây dng ng dng
SQL Server là h qun tr c s d liu quan h qun lý d liu phân tán rt
thông dng và hiu qu ca Microsoft, nó giúp ta d dàng kim soát c các giao
dch trên mng, m bo c s nht quán và toàn vn d liu cng nh gii quyt
các tng tranh.
.NET là công ngh mi ca Microsoft gm 2 phn chính: Framework và Integrated
Development Environment (IDE). Framework cung cp nhng gì cn thit và cn bn,
ch Framework có ngha là khung hay khung cnh trong ó ta dùng nhng h tng c
s theo mt qui c nht nh công vic c trôi chy. IDE thì cung cp mt môi
trng giúp chúng ta trin khai d dàng, và nhanh chóng các ng dng da trên nn
tng .NET. Nu không có IDE chúng ta cng có th dùng mt trình son tho nh
Notepad hay bt c trình son tho vn bn nào và s dng command line biên dch
và thc thi, tuy nhiên vic này mt nhiu thi gian. Tt nht là chúng ta dùng IDE phát
trin các ng dng, và cng là cách d s dng nht.
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
3
Thành phn Framework là quan trng nht ca công ngh .NET là ct lõi và tinh hoa
ca môi trng, còn IDE ch là công c phát trin da trên nn tng ó. Trong .NET
toàn b các ngôn ng C#, Visual C++ hay Visual Basic.NET u dùng cùng mt IDE.
Tóm li Microsoft .NET là nn tng cho vic xây dng và thc thi các ng dng
phân tán th h k tip. Bao gm các ng dng t client n server và các dch v
khác. Microsoft .NET cho phép nhng nhà phát trin thc hin các tính nng sau:
Ø Mt mô hình lp trình cho phép nhà phát trin xây dng các ng dng dch v
web và ng dng client vi Extensible Markup Language (XML).
Ø Tp hp dch v XML Web, nh Microsoft .NET My Services cho phép
nhà phát trin n gin và tích hp ngi dùng kinh nghim.
Ø Cung cp các server phc v bao gm: Windows 2000, SQL Server, và
BizTalk Server, tt cu tích hp, hot ng, và qun lý các dch v XML
Web và các ng dng.
Ø Các phn mm client nh Windows XP và Windows CE giúp ngi phát trin phân
phi sâu và thuyt phc ngi dùng kinh nghim thông qua các dòng thit b.
Ø Nhiu công c h tr nh Visual Studio .NET, phát trin các dch v Web
XML, ng dng trên nn Windows hay nn web mt cách d dàng và hiu qu.
1.2.1. Gii thiu s lc v .NET Framework
.NET Framework là mt platform mi làm n gin vic phát trin ng dng trong
môi trng phân tán ca Internet. .NET Framework c thit ky áp ng
theo quan im sau:
o Cung cp mt môi tng lp trình hng i tng vng chc, trong ó
mã ngun i tng c lu tr và thc thi mt cách cc b. Thc thi cc b
nhng c phân tán trên Internet, hoc thc thi t xa.
o Cung cp mt môi trng thc thi mã ngun mà ti thiu c vic óng gói phn
mm và s tranh chp v phiên bn.
o Cung cp mt môi trng thc thi mã ngun mà m bo vic thc thi an toàn mã
ngun, bao gm c vic mã ngun c to bi hãng th ba hay bt c hãng nào
mà tuân th theo kin trúc .NET.
o Cung cp mt môi trng thc thi mã ngun mà loi bc nhng li thc hin
các script hay môi trng thông dch.
o Làm cho nhng ngi phát trin có kinh nghim vng chc có th nm vng nhiu
kiu ng dng khác nhau.T nhng ng dng trên nn Windows n nhng ng
dng da trên web.
.NET Framework có hai thành phn chính: Common Language Runtime (CLR) và
th vin lp .NET Framework. CLR là nn tng ca .NET Framework. Chúng
ta có th hiu runtime nh là mt agent qun lý mã ngun khi nó c thc thi, cung
cp các dch v ct lõi nh: qun lý b nh, qun lý tiu trình, và qun lý t xa. Ngoài
ra nó còn thúc y vic s dng kiu an toàn và các hình thc khác ca vic chính xác
mã ngun, m bo cho vic thc hin c bo mt và mnh m. Tht vy, khái nim
qun lý mã ngun là nguyên lý nn tng ca runtime. Mã ngun mà ích ti
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
4
Hình 1.1: Mô t các thành phn trong .NET Framework.
runtime thì c bit nh là mã ngun c qun lý (managed code). Trong khi
ó mã ngun mà không có ích ti runtime thì c bit nh mã ngun không c
qun lý (unmanaged code).
Th vin lp, mt thành phn chính khác ca .NET Framework là mt tp hp
ng i tng ca các kiu d liu c dùng li, nó cho phép chúng ta có th phát
trin nhng ng dng t nhng ng dng truyn thng command-line hay nhng ng
dng có giao din ha (GUI) n nhng ng dng mi nht c cung cp bi
ASP.NET, nh là Web Form và dch v XML Web.
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
5
Common Language Runtime (CLR)
CLR thúc y vic mã ngun thc hin vic truy cp c bo mt. Ví d, ngi
s dng gii hn rng vic thc thi chúng vào trong mt trang web có th chy c
hot hình trên màn hình hay hát mt bn nhc, nhng không th truy cp c d liu
riêng t, tp tin h thng, hay truy cp mng. Do ó, c tính bo mt ca CLR cho
phép nhng phn mm óng gói trên Inernet có nhiu c tính mà không nh hng
n vic bo mt h thng.
CLR còn thúc y cho mã ngun c thc thi mnh m hn bng vic thc thi mã
ngun chính xác và s xác nhn mã ngun. Nn tng ca vic thc hin này
là Common Type System (CTS). CTS m bo rng nhng mã ngun c qun
lý thì c t mô t (self- describing). S khác nhau gia Microsoft và các trình biên
dch ngôn ng ca hãng th ba là vic to ra các mã ngun c qun lý có th thích
hp vi CTS. iu này thì mã ngun c qun lý có th s dng nhng kiu c
qun lý khác và nhng th hin, trong khi thúc y nghiêm ngt vic s dng kiu d
liu chính xác và an toàn.
Th vin lp .NET Framework
Th vin lp .NET Framework là mt tp hp nhng kiu d liu c dùng li và
c kt hp cht ch vi Common Language Runtime. Th vin lp là hng i
ng cung cp nhng kiu d liu mà mã ngun c qun lý ca chúng ta có th dn
xut. u này không ch làm cho nhng kiu d liu ca .NET Framework d s dng
mà còn làm gim thi gian liên quan n vic hc c tính mi ca .NET Framework.
Thêm vào ó, các thành phn ca các hãng th ba có th tích hp vi nhng lp trong
.NET Framework.
Cng nh mong i ca ngi phát trin vi th vin lp ng i tng, kiu d
liu . NET Framework cho phép ngi phát trin thit lp nhiu mc thông dng ca
vic lp trình, bao gm các nhim v nh: qun lý chui, thu thp hay chn lc d liu,
kt ni vi c s d liu, và truy cp tp tin. Ngoài nhng nhim v thông dng trên.
Th vin lp còn a vào nhng kiu d liu h tr cho nhng kch bn phát trin
chuyên bit khác. Ví d ngi phát trin có th s dng .NET Framework phát trin
nhng kiu ng dng và dch v nh sau:
ü ng dng Console (giao tip ngi-máy)
ü ng dng giao din GUI trên Windows (Windows Forms) ng dng ASP.NET
ü Dch v XML Web
ü Dch v Windows
Trong ó nhng lp Windows Forms cung cp mt tp hp ln các kiu d liu
nhm làm n gin vic phát trin các ng dng GUI chy trên Windows. Còn nu
nh vit các ng dng ASP.NET thì có th s dng các lp Web Forms trong th vin
.NET Framework.
Phát trin ng dng Client
Nhng ng dng client cng gn vi nhng ng dng kiu truyn thng c lp
trình da trên Windows. ây là nhng kiu ng dng hin th nhng ca s hay nhng
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
6
form trên desktop cho phép ngi dùng thc hin mt thao tác hay nhim v nào ó.
Nhng ng dng client bao gm nhng ng dng nh x lý vn bn, x lý bng tính,
nhng ng dng trong lnh vc thng mi nh công c nhp liu, công c to báo
cáo Nhng ng dng client này thng s dng nhng ca s, menu, toolbar, button
hay các thành phn GUI khác, và chúng thng truy cp các tài nguyên cc b nh là
các tp tin h thng, các thit b ngoi vi nh máy in.
Mt loi ng dng client khác vi ng dng truyn thng nh trên là ActiveX
control (hin nay nó c thay th bi các Windows Form control) c nhúng vào
các trang web trên Internet. Các ng dng này cng ging nh nhng ng dng client
khác là có th truy cp tài nguyên cc b.
Trong quá kh, nhng nhà phát trin có th to các ng dng s dng C/C++ thông
qua kt ni vi MFC hoc s dng môi trng phát trin ng dng nhanh
(RAD: Rapid Application Development). .NET Framework tích hp din mo ca
nhng sn phm thành mt. Môi trng phát trin cnh làm n gin mnh m s
phát trin ca ng dng client.
Nhng lp .NET Framework cha trong .NET Framework c thit k cho vic s
dng phát trin các GUI. u này cho phép ngi phát trin nhanh chóng và d dàng
to các ca s, button, menu, toolbar, và các thành phn khác trong các ng dng c
vit phc v cho lnh vc thng mi. Ví d nh, .NET cung cp nhng thuc tính n
gin hiu chnh các hiu ng visual liên quan n form. Trong vài trng hp h
iu hành không h tr vic thay i nhng thuc tính này mt cách trc tip, và trong
trng hp này .NET tng to li form. ây là mt trong nhiu cách mà .NET tích
hp vic phát trin giao din làm cho mã ngun n gin và mnh m hn.
Không ging nh ActiveX control, Windows Form control có s truy cp gii hn
n máy ca ngi s dng. u này có ngha rng mà ngun thc thi nh phân có th
truy cp mt vài tài nguyên trong máy ca ngi s dng (nh các thành phn ha
hay mt s tp tin c gii hn) mà không th truy cp n nhng tài nguyên khác.
Nguyên nhân là s bo mt truy cp ca mã ngun. Lúc này các ng dng c cài t
trên máy ngi dùng có th an toàn a lên Internet.
1.2.2. Biên dch và MSIL
Trong .NET Framework, chng trình không c biên dch vào các tp tin thc
thi mà thay vào ó chúng c biên dch vào nhng tp tin trung gian gi là Microsoft
Intermediate Language (MSIL). Nhng tp tin MSIL c to ra t C# cng tng t
nh các tp tin MSIL c to ra t nhng ngôn ng khác ca .NET, platform ây
không cn bit ngôn ng ca mã ngun. u quan trng chính yu ca CLR là chung
(common), cùng mt runtime h tr phát trin trong C# cng nh trong VB.NET.
Mã ngun C# c biên dch vào MSIL khi chúng ta build project. Mã MSIL này
c u vào trong mt tp tin trên a. Khi chúng ta chy chng trình, thì MSIL
c biên dch mt ln na, s dng trình biên dch Just-In-Time (JIT). Kt qu là mã
máy c thc thi bi b x lý ca máy.
Trình biên dch JIT tiêu chun thì thc hin theo yêu cu. Khi mt phng thc
c gi, trình biên dch JIT phân tích MSIL và to ra sn phm mã máy có hiu qu
cao, mã này có th chy rt nhanh. Trình biên dch JIT thông minh nhn ra khi
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
7
mt mã ãc biên dch, do vy khi ng dng chy thì vic biên dch ch xy ra khi
cn thit, tc là ch biên dch mã MSIL cha biên dch ra mã máy. Khi ó mt ng
dng .NET thc hin, chúng có xu hng là chy nhanh và nhanh hn na, cng nh
là nhng mã ngun c biên dch ri thì c dùng li.
Do tt c các ngôn ng .NET Framework cùng to ra sn phm MSIL ging nhau,
nên kt qu là mt i tng c to ra t ngôn ng này có thc truy cp hay
c dn xut t mt i tng ca ngôn ng khác trong .NET. Ví d, ngi phát
trin có th to mt lp c s trong VB.NET và sau ó dn xut nó trong C# mt
cách d dàng.
1.2.3. Gii thiu v qun tr d liu .NET
a) D liu tách ri (disconnect fashion)
iu này có ngha là ta cn các công ngh truy cp d liu ó h khách có th
truy cp, ti xung và lp cache d liu ã yêu cu, sau ó ngt kt ni vi h phc v
s d liu hoc kho lu tr d liu. Mt khi sn sang, chúng cn có kh nng ni li
và cp nht kho lu tr d liu ban u bng các chi tit thay i.
Làm vic vi d liu tách ri, ta có mt khía cnh khác ny sinh khi di t mt mô
hình khách/phc v vào th gii ca ng dng n-tng. Mt môi trng phân phi ng
ý h khách và h phc v tách bit, c ni bi mt mng.
b) Tin hoá ca ADO
Các công ngh truy cp d liu tin ADO, chng hn nh DAO (Data Access
Objects) và RDO (Remote Data Objects) ã c thit k cung cp các phng
pháp truy cp d liu m cho th gii khách/phc v-và rt thành công trong môi
trng ó. Ví d, nu ta xây dng các ng dng Visual Basic truy cp SQL trên
mng cc b, chúng làm vic suôn s.
c) Mã qun lý (managed code)
.NET Framework không phi là mt hu hành mi. Nó là mt lot các lp và
môi trng thi gian chy có qun lý trong ó mã ca ta có thc thi hành.
d) Mô hình lp trình mi
Ta vit bng các ngôn ng “úng n”, ch không phi là các tp lnh (script). Ta
có th dùng C# hoc bt k mt trong s ngôn ng khác sn có hoc ang phát
trin trong nn tng .NET.
e) Các namespace tên h thng cho qun tr d liu
Các lp qun tr d liu quan h mi nm trong mt lot các không gian tên da
vào System.Data bên trong th vin lp.
Cng có mt lot namespace tên tách bit cha các lp mà ta dùng làm vic vi
XML thay vì vi d liu quan h. Các không gian tên này da vào System.xml.
f) Các i tng ADO.NET cn bn
Truy cp d liu truyn thng vi ADO xoay quanh i tng kho lu tr d liu
cn bn-Recordset. K thut c dùng ay là to mt tuyn ni vi mt kho lu tr
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
8
d liu dung mt trình cung cp, sau ó thi hành các lnh trên nó tr v mti tng
Recordset cha d liu thích hp.
g) So sánh các k thut trong ADO và ADO.NET
Và ây là nhng im khác bit:
Ø Không có dng tng ng trc tip ca i tng Recordset. Tu thuc
vào công vic munt c, ta dùng mt DataReader hoc mt Dataset.
Ø Các con tr [cursors] phía khách và phía h phc v (c s d liu) không
c dùng trong ADO.NET. Mô hình tách ri có ngha là chúng không áp
dng c.
Ø Chc nng khoá (locking) c s d liu không c h tr hoc c yêu
cu. Mt ln na, vi mô hình tách ri, chúng không áp dng c.
Ø Tt c d liu c dch sang dng XML. Không có các phn biu th nh
phân hoc mã hoá MIME cho các tp hang hoc các cu trúc d liu khác.
1.2.4. Xây dng ng dng theo mô hình a tng (Multi-tier)
User Services Business Services Data Services
Các i tng
qun.lý logic nghip
v: Thông tin v S
n
phm, v khách
hàng,
ASP.NET Pages SQL Server
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
9
ng dng c xây dng theo mô hình a tng (multi-tier), mô hình thit kng
dng rt ph bin hin nay. Vi mô hình này, ng dng phân rã chc nng ca tng
n th mc ti a, các nghip v x lý logic ca ng dng c cài t thành
nhng i tng riêng bit.
C th, ng dng c xây dng phân rã thành 3 tng: Tng dch v ngi dùng
(User Service) cha các trang ASP.NET nh dng giao din và triu gi i tng
tng x lý nghip v (Business Logic Service). Các i tng tng Business Service
thc hin chc nng chính ca chng trình bao gm mã lnh tách ri phn nh dng
HTML. Vic kt ni và truy xut d liu c thc hin tng th 3 ó là tng dch
v h tr c s d liu (Database Service).
Nh vy, nu mun chuyn ng dng sang môi trng khác, chúng ta vn có th
dùng nhng i tng này mà không cn phi thay i gì thêm. ây chính là tính mm
do và d dàng nâng cp (Scalable) ca mô hình ng dng a tng.
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
10
Chng 2
PHÂN TÍCH VÀ THIT K
2.1. Phân tích hin trng
Công ty sn xut hàng tiêu dùng Bình Tiên chi nhánh Biti’s Nha Trang, chuyên
cung cp các mt hàng v giày dép Biti's cho các i lý.
v Qun lý sn phm Biti's:
Công ty sn xut hàng tiêu dùng Bình Tiên (Trung tâm Biti’s Tây Nguyên) khi
qun lý trên web cn có nhng thông tin sau: Tên sn phm, giá bán, màu sc (ch
qun lý nhng sn phm có màu xác nh), kích c (size), sn phm ó thuc loi nào,
và dành cho i tng ngi tiêu dùng nào, hình nh v sn phm ó.
v Qun lý khách hàng:
Mi khách hàng ca trung tâm u c qun lý nhng thông tin chính sau: H,
tên, a ch, sn thoi, s fax, a ch email (dùng ng nhp web), password,
tên ca hàng kinh doanh ca khách hàng.
v Qun lý nhân viên:
Mt nhân viên ca trung tâm Bitis ch cn qun lý trên nhng thông tin: H, tên
nhân viên, sn thoi, a ch ca nhân viên, và chc v.
v Quy trình qun lý bán sn phm Biti's:
Khi khách hàng thc thin giao dch, lp n t hàng trên web thì cn có thông
tin: Tt c các thông tin v khách hàng, thông tin v loi sn phm mà khách hàng
chn mua, s lng, thông tin ngày t hàng và ngày giao hàng hn chót. Vi các i
lý t hàng sn phm mi ca công ty sc chit khu giá tr ca tng loi sn
phm, và thu giá tr gia tng ca sn phm ã 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 xung tn
a ch ca khách hàng trc hoc ngay trong ngày giao hàng trong n t hàng, vi
các i lý sc chuyn hàng ti mà không mt phí vn chuyn. Vi khách hàng
vãng lai, mua vi s lng ít, tùy vào tng u kin khách hàng có th ti i lý gn
nht ca trung tâm Biti’s ly hàng.
Sau khi ã giao hàng, khách hàng nhn hóa n t hàng và thanh toán bng tin
mt. Nu là khách hàng quen có th cha thanh toán hoc thanh toán mt phn.
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
11
2.2. Thit k
2.2.1. Thit k d liu
2.2.1.1. Mô hình quan nim d liu
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 tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
12
2.2.1.2. Mô hình t chc d liu
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 tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
13
2.2.1.3. Mô hình vt lý d liu
SANPHAM(MASP
, TESP, DIENGIAI, SIZE, TINHTRANG, HINHANH, MADT,
MAMAU, MALOAI)
KHACHHANG(MAKH, TENKH, HOKH, EMAIL, PASS, DIACHI, SODT,
SOFAX, TENCUAHANG, MATINH
)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
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 tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
14
NHANVIEN(MANV, TENNV, HONV, SODT, DIACHI, MATINH, MACV)
DOITUONGSD(MADT, TENDT)
MAUSP(MAUSP
, TENSP)
LOAISP(MALOAI, TENLOAI, TIENCK)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADT (K) int 4 Len() = 4
TENDT nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAMAU (K) int 4 Len() = 4
TENMAU nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MALOAI (K) int 4 Len() = 4
TENLOAI nvarchar 30
TIENCK float 2
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
15
TINHTRANGDDH(MATINHTRANG, TENTINHTRANG)
DONDH(MADONDH, NGAYDH, NGAYGH, MATINHTRANG, MAKH)
HOADON(MAHD
, NGAYGH, MAKH, MADONDH, MANV)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MATINHTRANG (K) int 4 Len() = 4
TENTINHTRANG nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANO (K) int 4 Len() = 4
SOTIEN money 8
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng 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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4
NGAYTRA datetime 8 = Date()
MAHD int 4 Lookup (MAHD)
MANV int 4 Lookup(MANV)
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MATINH (K) int 4 Len() = 4
TENTINH nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MACV (K) int 4 Len() = 4
TENCV nvarchar 30
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANGAY (K) int 4 Len() = 4
NGAY datetime 8
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MANGAY (K) int 4 Len() = 4
MANSP(K) int 4 Len()=4
DONGIA money 8
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng 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 thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAPHIEU (K) int 4 Len() = 4
MANO(K) int 4 Len()=4
LANTHU numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAHD (K) int 4 Len() = 4
MANO(K) int 4 Len()=4
LANTHU numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MAHD (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADONDH (K) int 4 Len() = 4
MASP(K) int 4 Len()=4
SOLUONG numeric 4
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
18
CHITIETDL(MADONDH, MALOAI, SOLUONG)
2.2.2. Các modul chc nng ca trang web
v Cp nht sn phm Biti’s
INPUT: Thông tin mi ca Sn phm.
OUTPUT: Có thông tin ca Sn phm, tr li
BEGIN
Nhn “thông tin Sn phm mi”
FIND Tên Sn phm trong bng Sn phm xem Tên Sn phm có nm
trong “Thông tin Sn phm mi”?
IF FOUND
Output Tr li= “ã có Sn phm trong bng Sn phm”
ELSE
Write Thông tin mi vào trong bng Sn phm
END IF
END.
v Cp nht loi Sn phm
INPUT: Thông tin mi ca Loi Sn phm.
OUTPUT: Có thông tin ca Loi Sn phm, tr li
BEGIN
Nhn “thông tin Loi Sn phm mi”
FIND Tên Loi Sn phm trong bng Loi Sn phm xem Tên Loi Sn
phm có nm trong “Thông tin Loi Sn phm mi”?
IF FOUND
Output Tr li= “ã có Loi Sn phm trong bng Loi Sn phm”
ELSE
Write Thông tin mi vào trong bng Loi Sn phm
END IF
END.
Tên thuc tính Kiu d liu Kích thc Ràng buc toàn vn
MADONDH (K) int 4 Len() = 4
MALOAI(K) int 4 Len()=4
SOLUONG numeric 4
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
19
v Cp nht màu Sn phm
INPUT: Thông tin mi ca Màu Sn phm.
OUTPUT: Có thông tin ca Màu Sn phm, tr li
BEGIN
Nhn “thông tin Màu Sn phm mi”
FIND Tên Màu Sn phm trong bng Màu Sn phm xem Tên Màu Sn
phm có nm trong “Thông tin Màu Sn phm mi”?
IF FOUND
Output Tr li= “ã có Màu Sn phm trong bng Màu Sn phm”
ELSE
Write Thông tin mi vào trong bng Màu Sn phm
END IF
END.
v Cp nht nhân viên
INPUT: Thông tin mi ca Nhân Viên.
OUTPUT: Có thông tin ca Nhân Viên, tr li
BEGIN
Nhn “thông tin Nhân Viên mi”
FIND Tên Nhân Viên trong bng Nhân Viên xem Tên Nhân Viên có nm
trong “Thông tin Nhân Viên mi”?
IF FOUND
Output Tr li= “ã có Nhân Viên trong bng Nhân Viên”
ELSE
Write Thông tin mi vào trong bng Nhân Viên
END IF
END.
v Khách hàng ng ký
INPUT: Thông tin mi ca Khách Hàng.
OUTPUT: Có thông tin ca Khách Hàng, tr li
BEGIN
Nhn “thông tin Khách Hàng mi”
FIND Tênng nhp ca Khách Hàng trong bng Khách Hàng xem Tên
ng nhp ca Khách Hàng có nm trong “Thông tin Khách Hàng mi”?
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
20
IF FOUND
Output Tr li= “ã có tên ng nhp trong bng Khách Hàng”
ELSE
Write Thông tin mi vào trong bng Khách Hàng
END IF
END.
v Khách hàng ng nhp
INPUT: Thông tin ca Khách Hàng.
OUTPUT: Có thông tin ca Khách Hàng, tr li
BEGIN
Nhn “thông tin Khách Hàng”
FIND Tênng nhp và pass ca Khách Hàng trong bng Khách Hàng
xem Tên ng nhp và pass ca Khách Hàng có nm trong “Thông tin
Khách Hàng”?
IF FOUND
Output Tr li= “ng nhp thành công.”
ELSE
Write “Kim tra li tên ng nhp và pass”
END IF
END.
v Khách hàng tìm thông tin v sn phm
INPUT: Thông tin v sn phm.
OUTPUT: Có thông tin ca sn phm, tr li
BEGIN
Nhn “thông tin sn phm”
FIND Tên Sn phm trong bng Sn phm xem Tên Sn phm có nm
trong “Thông tin Sn phm ca khách hàng cn tìm”?
IF FOUND
Output Tr li= “Hin ra các Sn phm có chung thông tin mà khách hàng
cn tìm.”
ELSE
Write “Không có Sn phm nào có thông tin nh ca khách hàng.”
END IF
END.
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
21
v Khách hàng lp hóa n
INPUT: Thông tin v sn phm.
OUTPUT: Có thông tin ca sn phm trong gi hàng, tr li
BEGIN
Nhn “thông tin sn phm”
FIND Tên Sn phm trong gi hàng xem Tên Sn phm có nm trong gi
hàng hay cha.?
IF FOUND
Output Tr li= “S lng ca sn phm ó tng thêm 1.”
ELSE
Write “a thông tin v sn phm ó vào gi hàng.”
END IF
END.
2.2.3. Thit k giao din
Tin hành tham chiu (References) n lp va to tng 2 và khai báo kt ni, gi
các hàm cn dùng.
Ví d:
ddlLoaisp.DataSource = LOAISPDB.GetAll();
ddlLoaissp.DataTextField = "TENSP";
ddlLoaisp.DataValueField = "MASP";
ddlLoaisp.DataBind();
Hin th loi SP vào dropdownlist
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
22
chc nng trang web
Bán Biti's qua mng
Thanh toán
p nht Gi hàng
Gii thiu
Thng kê
n phm
Loi sp
Màu sp
i tng
dng
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
sn phm
Hàng tr li
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
23
Chng 3
XÂY DNG CHNG TRÌNH
Khác vi các trang ASP, các trang ASP.NET sau khi c yêu cu t h phc
v mt h khách yêu cu mt URL có uôi .aspx hay truyn tham s ti trang có
uôi .ascx .Khi ó các thành phn ca trang web ó sc biên dch, bao gm các
thành phn:
ü Tp tin .aspx hoc .ascx ang c yêu cu.
ü Tp tin lp .NET cha mã ca trang ó.
ü Mi u khin ngi dùng (User Control) mà trang s dng.
Vì trang ASP.NET c thit k nh là mt lp, nó cung cp cho ta mt tp hp
các s kin và ta có tht mã u khin bên trong nhng s kin này thay vì trn
ln vi thnh dng HTML. Chính vì vy, các trang .aspx và .ascx rt d dàng thit
k vi các ng dng web do nó c xây dng theo hng i tng, tách ri mã vi
các thnh ràng HTML.
S kin Page_Load luôn phát sinh u tiên mi khi trang .aspx hay .ascx c triu
gi t trình khách. Tip n là các s kin khác ca nhng thành phn u khin bên
trong trang. Sau cùng, khi b din dch ã thc hin xong các yêu cu ca trang, trang
sc gii phóng. Lúc này s kin Page_Unload sc triu gi.
3.1. Mt s hàm và th tc trong chng trình
3.1.1. Tng c s d liu
Thit k bng và th tc lu tr:
- Thit k bng và mô hình quan nim bng Power design.
- Th tc lu tr có cu trúc nh sau:
Ví d:
CREATE PROCEDURE TINH_Insert
(
@TENTINH nvarchar (30)
)
AS
CREATE PROCEDURE
[<Tên th tc lu tr>]
(
Khai báo bin là tham su vào hay ra ca th tc.
)
AS
Các câu lnh SQL
GO
án tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
24
INSERT INTO TINH
(
TENTINH
)
VALUES
(
@TENTINH
)
RETURN @@IDENTITY
GO
3.1.2. Lp thc hin kt ni vi c s d liu
Mi bng hay các Views em thit k 2 lp kt ni vi c s d liu gm: Data
và DataAccess. Trong lp DataAccess, mi th tc Stored Procedures s tng ng
vi 1 th tc c to ra trong lp này.
- i lp 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 tt nghip GVHD: Nguyn Thy oan Trang
SVTH: Nguyn Vn Hào Xây dng Website Biti’s
25
- Vi lp 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;