Vi v~y, xu th8 hi~n nay da dua Website len mQt vi th8 m6i, lien quanm~t thi8t v6i nhiSu v~n dS khac nhau bUQc chung ta khong chi quan tam t6i vi~c Website cua minh duqc xem bai trinh duy
Trang 1KHOA LuAN TOT NGHIEP • •
-TIM HIED VE CONG NGHE ASP.NET
GIANG VIEN HUaNG DAN: ThS. VU THANH HIEN
SINH VI EN THlfC HI~N : CAD VU LAM
NGUYEN DUY LINH
TP.HO CHi MINH - 2004
Trang 2MUCLUC• •
MonAu.
NOI DUNG.
ChU'o'ng 1 :Gio'j thj~u v~ H~ thBng NET FRAMEWORK
ChU'o'ng 3 : Quan ly truy c~p va k~t oBi CSDL vo'i ADO.NET
3.1 Tim hiSu vS ADO.NET va Data Binding, C3-13.2 Truy e~p duoli~u vai nhu'ng he>t1'9'ella NET C3-2
Trang 3+ M6 hinh ERD.
•
+ M6 ta co sa dfr li~u
+ Cac quy trinh xu ly co sa dfr li~u
Chu'o'ng 4 : Gio'i thi~u v~ tAng quan Website
4.1 Nguyen ly hO(;ltdQng va ban db Sitemap
4.2 Cac biSu m~u form
4.3 KSt lu?n
Chuo'ng 5 : San giao dich chu'ng khoan 30
26
C4-1C4-3C4-30
" 5.1 Hinh thll'Cdang 10' va quan ly C5-1
5.2 Cach thuc giao dich chUng khoan C5-15.3 Nguyen 1yhO(;ltdQng clla san giao dich ao C5-3
KET LU~N.
Trang 4MODAu
cong ngh? aU9'c tclPaoan Microsoft coi nhu au'a con tinh thdn cua minh, m(3t a6i thu c(1nh tranh aang go'm cua bat kj; a6i thu nao
rat nhi~u S'f:l'khuyin khich cua Nha nuac cilng nhu nhi~u cac t6
kho khan trong vi?c thu th(lp thong tin, tim kiim dfi' li?u cilng nhu tridn khai cac ung d'f:lngtrong th'f:l'cti ad kidm tra, aanh gia vi tinh m6'i me cua no.
Trong tho'i gian vita qua, co thd noi tuy can chua hoan thi?n nhung a~ tai ail nh(ln aU9'cS'f:l'ung h(J tit' rat nhi~u phia, Chung em xin chan thanh cam on cac thdy co, b(1n be ail hit long giup aO'ad
Thanh Hi~n lo'i biit an sau sac nhat vi trong tho'i gian vit'a qua ail huong dJn t(ln tinh va giup cho chung em co aU9'c nhilng ngu6n tu li?u quy bau ad hoan thi?n a~ tai Vi tho'i gian co h(1n nen a~ tai khong tranh kh6i nhilng sai 16m, thiiu sot Chung em rat mong nh(ln
m(3thoan chinh hon
Trang 51/ VE ASP.NET :
Ngay nay vi~c xay d1,111gWebsite da khong con xa I? gi v6i chung tao Tircac qu6c gia, nhung t~p doan cong ty lOn, nhCing nganh nghS khac nhau cho t6i tirng ca nhan V.v ai cung co thS xay d1,111gcho minh mQt ho~c nhiSuWebsite Vi v~y, xu th8 hi~n nay da dua Website len mQt vi th8 m6i, lien quanm~t thi8t v6i nhiSu v~n dS khac nhau bUQc chung ta khong chi quan tam t6i
vi~c Website cua minh duqc xem bai trinh duy~t gi rna con ph~li quan tam
xem nguai dung su d\lng h~ diSu hanh gi, kiSu phan tan dfr li~u gi, th~m chiphai quan Himnguai dung troy c~p Website b~ng di~n tho?i di dQng hay may
vi tinh, quan tam t6i sg tuang tac v6i Tivi k9 thu~t s6, nhfi'ng ung d\lng thongminh, nhu'ng m?ng gia dinh k9 thu~t s6 va d~c bi~t la kha nang di chuySn tir
nhu'ng trang Web sang cac ung d\lng va dich V\l Web co thS su d\lng duqc T~t ca nhu'ng diSu nay co duqc doi hoi chung ta phai su d\lng mQt ngon ngfi'
k!ch ban d~ratren may chu (server) cho phep t?O ho~c xay d1,111gcac ung d\lngWeb m?nh, dga tren vi~c vi8t nhu'ng do?n van ban dan gian, dS tu do ta co thSchinh su'a, thay d6i trang Web cua minh ma khong cfin phili bien dich l?i vachi cfin su' dl,mg nhfrng cong C\l so?n thao van ban dan giiln ch~ng h?n nhuNotepad D6ng thai cho phep chung ta co thS pha trQn cac do?n ma l~p trinhv6i nhfi'ng thi8t k8, nhfi'ng dan trang HTML khong lam xao trQn l~n nhau Dochinh la cac trang ASP (Active Server Page).
Th8 nhung, ASP duqc xay d\lng tu nhung nam dfiu th~p ky 90 dga tren
cong ngh~ COM va Win 32 API, da khong con cung c~p duqc nhung ki8n
trllc k9 thu~t m?ch l?c cho nhung tmg d\lng phan tan m6i phM triSn gfin day.Trong khi do, hang Sun v6i Java 2 Enterprise Edition (J2EE) da co nhung k9thu~t tuang thich cho nhCing sg phM triSn b~c cao nay Chinh vi Ie do,
ASP.NET cua t~p doan cong ngh~ thong tin hung m?nh nh~t th8 gi6iMicrosoft ra dai nh~m nang nhung cong C\l phM triSn va nhfmg k9 th~t tirWindows len thanh NET Framework DiSu nay co nghla la khi chung ta sud~ll1gASP NET la chung ta dang So' hu'u trong tay nhCing tinh nang va dich
V~lWeb m~mh nh~t cua Microsoft, tieu biSu nhu : day la mQt moi truang h~
diSu hanh trung l~p rna tu day khi su d\lng dS xay d1,111gcac trng d\lng Webthi no co thS ch?y tren b~t cli h~ diSu hanh nao, hay nhu day la 10?i ngon ngfrkjch ban ma h6 trq hfiu nhu cac ngon ngu' NET khac nhau, hay kS d8n tinhnang uu vi~t cua no la dQc l~p thi8t bi rna t?o ra mQt sg phM triSn nhay V9t khicho phep t?O ra cac thu vi~n rna ngu6n dan co thS ch?y t6t tren hfiu h8t b~t ki
Trang 6thiSt bi nilOV.V Chinh vi v~y, vi~c nghien Clm vS ASP.NET Ia mang tinhc~p thiSt trong vi~c c~p nh~t cong ngh~ mai, cling nhu co mQt y nghTa khoaI1QCva th\fc tiSn cao.
Trong plwm vi ng~n ng<;m cua dS tai, dS tai chi tim hiSu dSn hai ph?m vin6i b~t cua ASP.NET, do Ia :
- Tim hi~u va xay dl)'ng cac trang Web b~ng ASP.NET
(Chu'o'ng 1 & 2)
- Qmin Iy vi~c k~t nAi va truy c~p CO' sO' dfr Ii~u vo'i ADO.NET
(Chu'O'ng 3)
Thj truang chu'ng khoan, mQt dinh chS tai chinh dfiu tu co tlnh xa hQi
hoa r~t cao, ai cling co thS tham gia : nguai nhiSu tiSn co cach tham gia cua
nguai nhiSu tiSn, nguai it tiSn co cach tham gia cua nguai it tiSn, th~m chinguo'i khong tiSn cling co thS lam giau qua thi truang chung khoan, nSu biStdfiu cu
DSn nay chi sau gfin hai nam ruoi ho?t dQng, Trung Him giao dichchLrng khoan Thanh ph6 HE> Chi Minh da co tren sau ngan nguai tham gia vainhfi'ng y thtl'c khac nhau va hang ngan nguai da va dang tlch C\fCdfiu cO' trencac thi truang trao tay Noi chung, co nhiSu nguai dang thanh cong va khong
it nguai da th~t b?i Nhung, "theit bgi fa m? thanh cong" va "thanh cong hom
cUQc quan ly, diSu hanh va dfiu tu, kinh doanh chung khoan t?i mQt thi truangchLrng khoan mai rna cua nSn kinh tS thi truang dinh huang xa hQi chu nghTa,trong xu thS hQi nh~p va c?nh tranh se ngay cang phuc t?P hun nhiSu
Chinh vi v~y, website thi truang chung khoan dugc xay d\fl1g nen vainwc dfch chinh la mQt moi truang th\fc hanh, giup chung ta hiSu biSt mQtcach toim di~n vS thi truang chung khoan noi chung va thj truang chungkhoan Vi~t Nam noi rieng, c~p nh~t nhfrng thong tin biSn dQng mai nh~t vS s\l'thay d6i cua cac lo?i c6 phiSu, cling nhu la nO'i dS chung ta thl)'c hanh vi~cmua ban chu'ng khoan dS til do chung ta co dugc nhfrng lu~n cu trong vi~ct6 chLrc va diSu hanh cac djnh chS tai chinh ho?t dQng tren thi truang va l\facl1Q11chLrng khoan, l\fa ch<;mthai cudS dfiu tu, dfiu Co' va kinh doanh co hi~uqua I1h~t
Trong ph?m vi ng~n ng<,m cua dS tai, website thi truang chung khoanngoai vi~c mang cac nQi dung ph6 biSn cu~ mQt website nhu : Tin tuc, KiSn
Trang 7• n6i luang lham gia : hd trq nhung nha doanh nghi~p, nhung nha
d~u tu hi~n tC;litrong vi~c th\Ic hi~n cac giao dich tren thi truang chung khoan
tn,Jc tuy~n Nhung cac d6i tuqng nay nhftt dinh phai co tai khoan clla mQttrong cac ngan hang thanh vien clla cong ty chung khoan
Trang 8Chuang 1: Gi6'i thieu v~ he th5ng NET.FRAMEWORK
Trung tam clla Net Platform la h~ th6ng thai gian thl,l'Cclla chinh no.Day chfnh la h~ th6ng CLR (Common Language Runtime) CLR la dQng ca
dung dS phan tich va thl,l'Cthi t~t ca cac l~nh clla nhfrng tmg dVng Net , CLRcung quan ly t~t ca cac h~ th6ng bao m?t va triSn khai bao g6m ca vi~c thiStl?p va thvc thi nhu'ng do~m rna thai gian thl,l'C.Co thS noi, CLR chinh la n@ntiing ma d!;1'avao do ca "gu6ng may" Net du9'c xay dl,l'ng nen
Ph~n quan tn;mg nh~t Clla n@n tang nay la dl,l'a vao mQt thu vi~n d6 sQcac lap di@u khiSn t~t ca nhu'ng cong vi~c Chll ySu du9'c yeu c~u bai cacchuang trinh Nhfrng lap nay du9'c t6 chuc thanh cac thu vi~n lap dl,l'a trencac kiSu cong vi~c ma chung thl,l'c hi~n.V ai hang tram cac lap trong NETFRAMEWORK, chung ta co thS phan loe;ti chung theo nhfrng phe;tm tru nhusau:
du9'c yeu c~u bai t~t ca cac lap khac
du' Ii~u (co quan h~ hay phan c~p)
nhu'ng cong vi~c c~p cao nhu ve cac d6i tU9'ng tren man hinh, quan lyhQp tho(;li va trinh diSn tren man hinh may tinh
cho vi~c t(;lOva dieu hanh nhu'ng trang Web va nhfrng cong vi~c lienquan dSn HTTP khac
Chi trll' cac lap Windows se khong du9'c ua thich trong vi~c phat triSnWeb, t~t ca cae lap con l(;lid@ur~t hu'u dVng, kS ca lap D6 hO(;ldi kern vai 16pWindows, cho phep nhu'ng nha I?p trinh Web xay dVng nhfrng giai phap rnachi co trong tuang tU9'ng va han thS nfra
Trang 91.2 - HE THONG CLR :
H~ th6ng CLR Ia h~ th6ng thai gian thllc cung c~p t~t ca nhu'ng sucm~nh cho cong ngh~ Net No cung chinh la n@n tang cho ban than NetPlatform H~ th6ng CLR cung d.p mQt s6 cac dich V\l (services) c~n thi@t baog6m cho ca vi~c h6 trq nhfrng ung d\lng cua Net nhu :
• 80 quaD Iy rna : bao g6m ca vi~c thi@t l~p vi tri va thllc thi cac maI~nh, quan I;' cac stack va heap, quan I;' cac ti@n trinh v.v
• H8 trey bao mat: bao g6m nhfrng mo hinh bao m~t mai dlla tren vi~cphan tlch cac "v@t" dam bao cho vi~c truy c~p cac do~n ma, cung nhuh6 trq cao nh~t vi~c bao m~t cho nguai dung cao c~p va nhom nguaidung truy c~p
• QUaD Iy cac tap ho'p du' kieD sai va lai : bao g6m nhfrng GC hua h~ncua Net trong vi~c quan I;' cac 16i, theo d~u stack va cac tlnh nang tim-slra 16i cua CLR
Nhu'ng ph:~l1ntru nay dt rQng Ian va di@u nay khong co nghTa Ia CLR sebao g6m toan bQ h@t nhfrng tlnh nang nay Tuy nhien, day ph~n Ian chinh Ianhu'ng tinh nang chu y@u cua CLR khi chung ta xay dllng va thllC thi cacchuang trinh u'ng d\lng ASP.NET
Hinh 1.1 mo ta mQt biSu d6 s~p x@p cac thanh ph~n chinh cua CLR.Chung ta nen luu ;' r~ng nhu'ng y@u t6 ca ban cho vi~c thllc hi~n thai gianthvc da duqc tom g9n I~i a day No bao g6m til nhfrng lap dS n~p chuangtrinh Illc b~t d~u cho d@nnhfrng lap quan I;' do~n ma cua chuang trinh, th~mchi bien d~ch va th\fc thi cac do~n ma nay, d6ng thai h6 trq ca nhfrng lap thuvi~n them vao dS t~o nen nhfrng bQ ph~n chu y@u cua NET FRAMEWORK
I H5trq lap tIm vi~n ca bim
I QWInIy Ti~ntrinh
II Q-ua-n-'y-C-O-M I Klem tra 15i II B~t 15i
I Baa m~t II Tim-Sua 16i
I Bien dich II QuanIy ma II Dich V~I GC
C Lap n<.lp chuangtrinh
Trang 10Chuang 1: Gi6i thieu v€ he th6ng NET FRAMEWORK CI-3
B(>quan ly ma t1'ong CLR bao g6m hftu hSt nhfrng ho~t d(>ng cO'bant1'ong vi~c n~p va thvc thi cac chuang t1'inh ,Net M(>tt1'ong nhfrng cong vi~c
chfnh cua b(>quan ly ma la chuySn d6i nhfrng t~p tin ngon ngft t1'ung gian IL
(Intermediate Language) tu nhfrng dong l~nh cua cac b(>bien djch sang ngonngil' may Cong vi~c nay cftn thiSt phai co vi tu nhfrng dong l~nh, cac b(>biendich chua t~o 1'angay nhfrng do~n ma co thS thvc thi ma thay vao do, chung
t~o 1'a nhfrng kiSu ma nen gQi la IL Nhfrng IL nay phai duQ'c chuySn sang
thanh ngon ngfr may dS co thS "ch~y" duQ'c chuang trinh
Suod\lllg IL nhu la b(>d~m n~p chuang trinh cho cac ung d\lllg cua Net
co nhG'ng uu diSm r~t quan t1'Qng.Thu nh~t, no co y nghia 1'~ngvi~c bien dichnhCi'ngdo~n ma cua b~n khong "khoa" d6i v6i m(>th~ diSu hanh hay m(>th~th6ng dan Ie nao ca Theo ly thuySt, diSu nay co nghia 1'~ngchung ta co th~bien dich lftn dftu va sau do co thS mang no di t6i b~t cu nSn c~u truc hay cacthiSt bi nao khac cung co thS thvc thi duQ'c chuang trinh Do la ly do t~i sao
ma vi~c t~o 1'anhG'ng do~n ma th\l'c thi duQ'cth~t sv l~i duQ'c quan ly b<'1'ichinhban than CLR Hinh 1.2 se mo ta Co' chS lam vi~c cua no
2
Mil ngu6n
4
BI) bien djch ng6n ngil'
BO bien dich lIT Mil&dfr Ii~u
bi~n d6i
mnh 1.2: Vong bien dtch va thlf'C thi l?nh cua eLR
Trang hinh 1.2 ,buac 1la t~o ra nhfrng do~n ma ngu6n Ta co thS dung b~t cuchuO'ng trinh so~n thao van ban nao dS t~o 1'anhu'ng t~p tin ma g6c Net dbuO'c 2, m(>tchuO'ng trinh bien dich cac dong l~nh se nh~n cac ma ngu6n nhu
la dftu vao va xu~t ra cac t~p tin (DLL ho~c EXE) ma co chu'a cac do~n ma da
Trang 11dUQ'cphan tieh va nhung du li~u biSn d6i duQ'c them van (bu6e 3) Trongbuac 4, nhl1'ng dOe;lnrna da duQ'c phan tich va dfr li~u biSn d6i nay duQ'cchuySn giao cho b<)bien djch "ngay tuc thai" JIT (Just In Time) dS ehuySnd6i thanh nhfi'ng doe;tnrna rna h~ diSu hanh va b<)xu ly co thS th\fc hi~n duQ'C(buac 5) Vai nhfrng chuang trinh ung dVng cua ASP NET thi buac cu6i cungxu~t hi~n a I~n d~u tien nguai dung gui yeu e~u tu m<)t trang trong chuangtrinh lrng Web
Co m<)tdiSm quan trQng c~n nh~n me;lnhdo la eac t~p tin da dUQ'eJITbien djeh se dUQ'eluu trfr tren rna cho cac l~n dung sau Nhung yeu c~u gi6ngnhau duQ'c gui nhiSu l~n eho cung m<)tvi~c se duQ'c bien djch thanh rna maychi trong I~n d~u tien Cac l~n yeu c~u sau se duQ'Cdua th~ng tai t~p tin daduQ'c bien djch thanh rna may s~n DiSu nay co nghTa la cae chuang trinh ungd~lI1gASP,NET se th\fc thi vai cac dOe;lnrna may vai t6c d<)nhanh trong m6i
I~n thvc hi~n, No cling co nghTa la vi~c chuySn d6i sang rna may chi th\fc hi~n
duy nh~t 1I~n trong ca vong dai cua cong vi~c do DiSu nay cling chi thay d6ikhi rna ngu6n duQ'c thay d6i, va te;tithai diSm do toan b<)vong l?p a hinh 1.2le;tibitt d~u l~n nfra
Di cung vai nhfrng h6 trQ' cho vi~c ne;tpva th\fC thi cae doe;tnrna, h~th6ng CLR con dua ra nhung h6 trQ' cho m<)t s6 eong vi~c bao m~t No baog6m ca bao m~t vS truy c~p rna va nguai dung I~n nhli'ng cong vi~c bao m~t
vS quySn co ban,
H~ th6ng CLR co kha nang kiSm tra m<)t s6 cae nhan t6 d~u hi~u baom~t Do la t~p hQ'pnhung nhan t6 xae djnh xem h~ th6ng eac dOe;lnrna co chophep truy c~p te;tinhll'ng thai diSm khac nhau hay khong,
H~ th6ng CLR cling gili' nhl1'ng "vSt" cua m<)t s6 cac ySu t6 xac dinhbao m~t Truac tien, ban than nhung doe;tnma cling co nhung yeu c~u chophep, Ch&ng he;tnnhu "Toi co duQ'c quySn t~o 1t~p tin m6i trong thu m~lCnayhay khong ?" Va ban than h~ th6ng CLR co thS gan nhung sv cho phep nay.Nhu'ng sv eho phep nay co thS t6n te;titrong nguai dung va ca trong role, T~t
ca nhu'ng sv cho phep nay co thS duQ'c kiSm tra dS ngan ngu'a nhung t~p hQ'pcac sv cho phep t6n te;titrong cac may ch(l'a cae doe;tnmao DiSu nay eho phepnhu'ng nguai quan ly may chu diSu khiSn nhung mue cho phep dS gan quySn
cho nhu'ng doe;tnma che;tytren cac may, Cu6i cung, vi tri thvc sv dS ch~y
nhu'ng doe;tnma, b~t kS no dUQ'etruy c~p tu xa hay n<)ib<),cling nhu sv cho
Trang 12Chuang 1: Gi6'i thieu v€ he th6ng NET.FRAMEWORK CI-5
phep dang nh~p VaG do~m rna cua nguai dung, tftt ca duQ'c thvc hi~n nhu rn(>tph~n trong vi~c xac dinh nhfrng sv cho phep cua vi~c thvc thi chuang trinh(mg dVng
Hinh 1.3 rno ta lam cach nao thai gian thvc co nhfrng rnvc xac dinhphong phu va cac do~m rna t6n t(;li truy c~p VaG nhfrng chuang trinh hO(;lchdjnh thay thS cho cac may va thay thS b(> ph~n quy dinh cho bao rn~t dS tinhtoan nhu'ng sv cho phep th~t S\l cho cac dO(;lnmao
Oft li~lI xae dinh
K~t qua eha phep
Hinh 1.3 : NhL7ng Sl/ eho phep truy ec;ipcae aogn ma may tinh
CLmg vai vi~c thV'c thi ma va bao m~t, h~ th6ng CLR con quan ly b(>nha va 16i Djch vv quan ly 16i trong CLR lam vi~c theo m~u "try va catch".Bftt cU' 16i nao co kha nang gay 16i dSu duQ'c dua VaG trong kh6i try va catch.NSu m(>t 16i xuftt hi~n trong kh6i try, rn(>t kh6i catch duQ'c ch<,mtruaq cling sexuftt hi~n Thong thuang, m(>t kh6i catch truy c~p VaG trong ffi(>t lap quy t~cd~c bi~t ma chu'a nhu'ng chi tiSt tu CLR vS nhfrng quy dinh co thS bi vi ph(;lrn
va xuftt hi~n 16i No cling la m(>t rno hinh 16i khong c6 dinh hoan toan lamvi~c rftt t6t vai rftt nhiSu ngon ngfr d~t trong CLR
B(> xu' ly quan ly b(> nh6 thi duQ'c n~m gifr boi b(> t~p hQ'p 16i GC (GarbageColletor) B(> GC gifr nhu'ng "vSt" cua tftt ca cac d6i tUQ'ng va nhfrng biSn b(>nh6 do no t(;lo ra va khi nhfrng d6i tUQ'ng nay khong con dung nfra thi xoachlmg ra kh6i b(>nh6 dS danh ch6 tr6ng cho nhfrng biSn va d6i tUQ'ng rnai
Trang 13M<)t trong nhung khia qmh quan tn;mg clla GC trong CLR la cac d6itUQ'ngse khong hoan thanh cho dSn khi b<)nho tuy~t d6i cfin thiSt cho vi~cth\l'c thi chuang trinh kSt thuc SlJ t6i uu nay Clla b<)xu ly b~ng cach dQ'ichodSn khi kSt qua phl,lc h6i l~i b<)nho d.t co huu hi~u trong vi~c thlJc thi cacchuang trinh Tuy nhien, trong m<)t s6 trucmg hqp hiSm hoi, do~n rna cu6icung l~i lam cho vi~c quan ly cac tai nguyen khong ch~y duQ'c nua cho dSnkhi m<)td6i tUQ'ngkhong con dung nua SlJ thiSu hl,lt Clla vi~c xac dinh hoanthanh cu6i cung nay la diSu r~t quan tn;mg d6i voi nhiSu l~.ptrinh vien Khongc~n phai di vao chi tiSt, nhung r~t quan trQng c~n phai ghi nho r~ng nen dongliSn b~t ky tai nguyen dang rna nao l~i truoc khi giai phong d6i tUQ'ngcllab~n.
CLR la h~ th6ng thai gian thlJc c~p th~p, la ho~t d<)ng trung tam Clla.Net Platform Tuy nhien, m<)t minh h~ th6ng CLR se khong dll hoan thi~nnhu'ng chuang trinh ung dl,lng b~c cao ch~ng h~n nhu giai phap Web DS lamduQ'c vi~c nay, chung ta c~n phai co m<)t thu vi~n cac lap cung c~p nhungdich Vl,lca ban va chuc nang c~n thiSt dS t~o ra cac chuang trinh u'ng dl,lngv6"id~y dll chuc nang
1.3 - NHUNG THU VIltN LOP eVA .NET FRAMEWORK :
Trong khi h~ th6ng CLR duQ'c coi la nSn tang clla Net Platform, thi h~th6ng nhfrng thu vi~n lap CllaFramework - FCL (Framework Class Libraries)l~i duQ'c gioi thi~u nhu chuc nang chinh duQ'c yeu c~u dS xay dlJng va triSnkhai lam vi~c cac chuang trinh ung dVng ASP NET H~ th6ng FCL cung c~phang tram cac lap dS quan ly t~t ca mQi thu tu nhung toan chu6i va tinh toandan gian dSn nhung vi~c c~p cao nhu t~o cac dialog tren man hinh may vi tinh
va cac trang Web tren trinh duy~t
Quan trQng han, h~ th6ng FCL con dS dang rna r<)ng va c~p nh~t b~ngcach them vao nhung DLLs ho?c nhfrng t~p tin c~p nh~t khac Day la m<)tySut6 quan trQng trong vi~c thiSt kS CllaFCL Microsoft da di m<)tbuoc dai trongvi~c dam bao r~ng se co m6i lien h~ dS dang trong vi~c nang c~p va duy tri h~th6ng FCL l11a khong g?P phai nhiSu r~c r6i khi tai toan b<)FCL dS h6 trQ'c~pnh~t va chinh slra dan gian.DS lam duQ'c vi~c nay, h~ th6ng FCL duQ'c chi a rathanh nhiSu t~p tin DLLs, m6i thu' t~p trung vao m<)tt~p hQ'pnhu'ng cong vi~c
co quan h~ voi nhau
Trang 14Chuung 1: Gi6i thieu v~ he th6ng NET, FRAMEWORK Cl-7
1.3.1 - Cae lo'p H~ th8ng :
Cac lap H~ th6ng dua ra nhfrng dich V\l co ban d.n thiSt dS h6 tr9' tfit cacac lap khac trong FCL No bao g6m nhfrng cong vi~c cfip thfip nhu : ch?ytiSn trinh, bao m?t, diSu khiSn tiT xa va dang tai lien t\lc No con g6m canhfrng cong vi~c nhu truy C?P vao dich V\l m?ng, co chS dQc ghi t6ng quat, t?Phqp, dang ky, ch~n doan va quan ly so?n thao
Cac lap H~ th6ng chua tfit ca nhfrng chtl'c nang va dich V\l dS quan lynhfrng Xl)' ly chu6i va toan hQc co ban Chung con n~m gifr nhfrng bQ quan lyt?P h9'P thong qua mQt s6 lU9'ng Ian cac lap diSu khiSn nhung C?P ten/gia tri,danh sach va mango Them vao do, co nhfrng lap cua vi~c quan ly cac tainguyen khac nhu : hinh anh va thong tin cfiu hinh
Cac lap H~ th6ng cung quan ly cong vi~c kSt n6i vai CLR cho nhfrngdjch V\l thai gian thl,J'c, quan ly Sl,J'tuong tac gifra CLR va h~ diSu hanh mayChLl, dang tai lien t\lC cac d6i tU9'ng va du li~u, thl,J'c hi~n lfiy thong tin diSukhiSn tLI'xa thong qua cac bQ xu ly va may chu
1.3.2 - Cae l6'p Du' li~u va XML :
Cung vai cac lap co ban, h~ th6ng FCL con cung cfip nhung lap dSquan Iy du' li~u va XML Cac lap H~ th6ng con bao g6m h6 tr9' cac co sa dli'li~u l<St n6i OLEDB (OleDB) cung nhu la t?P h9'P cac lap cho vi~c truy C?PMicrosoft SQL Server tn,rc tiSp (SqlClient va SqlTypes) Nhu'ng lap dCI'li~unay la thanh ph~n rna Microsoft gQi la ADO.NET
Them vao cac lap du' li~u, cac lap h~ th6ng XML con dua ra h6 tr9' cho
nhu'ng Schema, Xpath, XSL va dang tai t6ng quat dli' li~u XML Cu6i cung,tfit ca cac djch V\l dfr li~u chia xe trong mQt t?P hgp cac lap ph6 biSn chonhu'ng cong vi~c quan ly co ban
1.3.3 - Cae lo'p Windows va D6 hQa :
MQt t?P h9'P cac lap khac dua ra vi~c truy C?P cac djch V\l man hinhmay vi tinh co ban nhu : ve hinh, in fin, thiSt kS cac dialog va h6 tr9' nhli'ngthanh ph~n giao di~n nguai dung Don la cong vi~c cua lap Windows va D6hQa
Trong khi cac lap Windows la mQt Sl,J'hfip d~n nho nh6 d6i vai cac nhaphat triSn ASP,NET thi cac lao D6 hQa l?i rfit huu fch Nhu'ng lap nay co thS
Trang 15duQ'c dung dS thvc hi~n vi~c t~lOhinh anh va thao UlC,vi~c t~lOra cac phongchu' ph(rc t?P va nhfrng djch V\l vS d6 hQa khac Cac lap D6 hQa cung dua ravi~c truy C?P thong qua in ~n va nhfrng cong vi~c quan ly so?n thao khac c6thS trong cac chuang trinh ung d\lng ngU<Jidung phong phil.
1.3.4 - Cae lo'p Web:
Cu6i cung, cac lap Web la nhfrng lap c6 thS quan ly giao di~n nguaidung va nhu'ng djch V\l Web cho cac chuang trinh ung d\lng Web Day chinh
la ph~n clla h~ th6ng FCL rna nguai dung ASP NET se h~u nhu thuang xuyen
SLI' d\lng t6'i
C6 m<)tt?P hQ'pcac lap VI Co' ban cung c~p nhfrng h6 trQ'cho cac trangWeb, cac diSu khiSn HTML va nhfrng diSu khiSn Web Form m6'i Nhfrng lapnay chu'a dVng t~t ca nhfrng diSu khiSn HTML di kern cung vai m<)tt?P hQ'pcac diSu khiSn "thong minh" nhu : bang, danh sach dfr li~u va diSu khiSnhll'6'ng, diSu khiSn ngay thang va nhiSu nhfrng djch V\ltrinh di~n cao c~p khac
C6 m<)tt?P hQ'pcac l6'p cung c~p vi~c truy C?P vao nhfrng djch V\l WebXML dva tren cong ngh~ SOAP (~imple Object Access Protocol) ch~ng h?nnhu : phuang thuc giao tiSp SOAP, nhli'ng lien kSt d<)ng cua nhli'ng djch V\lWeb, quan ly phuang thuc gQi SOAP qua proxy Nhfrng kiSu mftu naychfnh la trung tam clla mo hinh XML Web Service cho cac giai phapASP.NET
Cu6i cung la nhu'ng l6'p quan ly nhli'ng cong vi~c vS cac chuang trinhu'ng d\lng Web tieu biSu nhu : xu~t cac trang ra man hinh, c~u hinh cac
chuO'ng trinh u'ng dl;mg, qu~mly phien lam vi~c va nhli'ng dich V\l b~lOm?t dvatren cong ngh~ Web
1.4 - KET LuAN:
C6 thS n6i, h~ th6ng NET Framwork chinh la trung tam t?O nen congngh~ Microsoft NET Va nSn tang cua NET l?i la Common LanguageRuntime (CLR) CLR c6 thS hiSu dun gian la sv biSu di~n clla vi~c xu ly caccong vi~c nhu bien dich rna ngu6n, quan ly bao m?t Co' ban, quan ly b<)nh6'chung va nhung dich V\lCo' ban khac Va di cung v6'i CLR la Framwork ClassLibraries (FCL) chua hang tram cac lap c~n thiSt dS xay dvng nhfrng chuungtrinh lrng v6'i d~y du nhu'ng tlnh nang n6i b?t nh~t T~t ca hQ'P l?i t?O thanhnhu'ng uu diSm n6i b?t cua ASP.NET giilp cho chung ta t?O ra nhfrng giaiphap vS m?ng cvc k5' vfrng ch~c va hi~u qua
Trang 16Chuang 2 :Xay dlmg trang Web v6i ASP.NET
Val ASP.NET
2.1 TiM HIED VE ASP.NET WEB FORM:
C2 - 1
2.1.1 Mo hinh Hip trinh Web Form:
Mo hinh l~p trinh Web Form trong ASP.NET co nhfrng di@mmai va
rieng bi~t MQt s6 net d?c trung cua ASP.NET lam cho cac Web Form duQ'ct~o ra co net vuqt trQi han Di@mdftu tien la cac Web Form duQ'c t~o ra b~ngcach Sll'dt,lng cach l?p trinh phia trinh chu d@b~t cac st,rki~n xay ra phi a trinhkhach DiSu do cho phep Web Form cua ASP.NET co th@ch~y tren hftu h~tmQi trinh duy~t Ngoai ra, til khi Web Form dt,ra vao Common Language
Runtime (CLR) cua nSn NET, chung h6 tra ky thu?t l?p trinh huang d6i
tUQ'ng bao g6m tinh k~ thila, type safety, st,r bien dich dQng Han mIa,ASP.NET Web Forms co th@duQ'c l?p trinh b~ng b~t Cll lo~i ngon ngu' CLRnao suodt,lng bQ bien dich tu'c thai, nhu Visual Basic, C#, Jscript.NET ASP.NET Web Forms con cung c~p cac cong c\ll?p trinh va phat tri@nh6 trQ'WYSIWYG (b~n se nh?n duQ'c dung nhfrng gi b~n th~y)
2.1.2 Thuc thi phia trinh chii trong ASP.NET:
T?p tin ASP.NET la t?P tin co phftn ma rQng la *.aspx Thong thuang,t?P tin nay bao g6m cac thanh phftn cua HTML, ma xu ly phi a trinh chu va
ma phia trinh khach Nhu So' d6 a duai, khi nguai dung yeu cftu trang ASPX,trinh chu se tim trang do trong bQ nha va gai no cho ASPX Engine ASPXEngine bien dich ma phia trinh chu va phat sinh ra mQt lap Sau do se t~o d6itUQ'ngella lap do va tht,rcthi cac cau l~nh d@tra lai Trang qua trinh tht,rc hi~n,h~ th6ng se theo cac cau l~nh phia trinh chu d@xu' ly dfr li~u duQ'c nguai dungdua len Cu6i cung, trinh chu se chuy@nd6i tUQ'ngtra lai vS cho trinh khach.Tom l~i, qua trinh xu' ly yeu cftu trang ASPX (hinh 2.1) g6m cac buac sau:
1 Trinh chu nh?n yeu cftu gai trang ASPX
2 Trinh chu xac dinh vi tri cua trang ASPX tren rna
3 Trinh chu gai trang tim duQ'c cho ASP.NET Engine
4 ASP.NET Engine bien dich trang vila nh?n duQ'c va phat sinh lap N~ul6p do da duQ'Cn~p, thi ASP.NET Engine chi cung c~p mQt lu6ng d@ch~y lap do thay vi phat sinh l~i mQt lap Trong qua trinh bien dich,
Trang 17! Engine co th~ d.n tai rna cua cac lap khac, vi d\l cac lap code-behind
ho~c cac lap thanh ph~n Cac lap duqc t?P hqp l~i trong buac nay
ra d6i tuqng tnlloi
6 Trinh chu gai d6i tuqng tra lai cho trinh khach
D
ASPX Engine
.html asp aspx xml
Compile and Generate Page Class,
If Needed
Other Required Classes
Hinh 2.1: Qua trinh xU'lf cua Web Server khi aU9'C yeu cdu trang ASPX
M(>tdi~m n6i b?t nfra cua ASP.NET Web Form la no h6 t1'<;chS d(>viSt
ma phan bi~t 1'5 rang gifra ngon ngfr danh d~u HTML/XML va rna phia trinhchu xu ly trang web Truac day ta kho co th~ t~o m(>t trang web ch~t luqngrna khong tr(>nl~n ngon ngfr danh d~u, rna ngu6n phia trinh khach, rna ngu6nphia trinh chu trong cung m(>ttrang Con hi~n nay, ASP.NET Web Form dua
ra m(>ts6 cach d~ ta t~o trang web th?t 1'5 rang, nghTa la trong trang do, caedo~n ma XLI' ly va ngon ngu' danh d~u duqc tach bi~t ra hoan toano
Day la m(>tcach giup chung ta dS dang viSt rna phia trinh chu tach bi~tvai ngon ngu' danh d~u trong cung m(>ttrang ASPX B~ng each t~o m(>tkh6il~nh <script> a d~u trang web (ho~c t~i b~t k5' vi tri nao cua trang), ta co th~
Trang 18Chuang 2 :Xay dung trang Web v6'i ASP.NET C2-3
b~t oU9'c t~t ca cac S\f ki~n cling nhu viSt nhfrng oo~n rna xu 1y cftn thiSt ascac trang web tuang tac v6i nhau Ngon ngfr viSt trong kh6i <script> co thS 1ab~t Cll"lo~i ngon ngfr CLR nao, oU9'Cchi oinh b~ng cach khai bao thuQc tinhlanguage = <ten ngon ngfr>
<script language= "VB" runat="se1've1'''>
Sub Page_Load(sender as Object, e As EventArgs)
End SubSub subrnit_c1ick(sender as Object, e as EventArg)
MQt cach khac r~t rn~nh aS t~o ASP.NET Web Form 1a viSt rna xu 1ya
111Qtt;\iptin khac Cach nay cho phep ta oua toan bQ rna phi a trinh chu qua rnQtt;\iptin khac, tach bi~t h~n v6i trang chua ngon ngfr oanh d~u Nhu v;\iy,ta secang dS dang han khi chinh sua ngon ngfr oanh d~u rna khong S9' vo y lamanh huo'ng t6i Sl,l'thl,l'cthi cua oo~n rna phia trinh chilo
V6i cach nay, tru6c tien ta cftn phai t~o hai t;\iptin: rnQt AS1uu rna cuangon ngu' aanh d~u va t;\iptin kia luu ma xu' 1y phia trinh chu 6 t;\iptin chu'angon ngu' oanh d~u (co phftn rna 1'Qng1a ASPX), hang oftu tien se chi r5 rat;\iptin chua rna phia t1'inh chu trong Website 00, phftn con l~i bao g6m toan
bQ 111aHTML/XML Du6i oay 1a dong l~nh chu~n ASth\TChi~n vi~c nay:
<%@ Page Inherites=tenlap Src=tent;\iptin %>
TiSp theo, ta t~o rnQt lap va luu no van t;\iptin chu'a trong cung thu rn\lcv6'i t;\iptin co phftn rna rQng ASPX T;\iptin nay chua toan bQ rna ngu6n phiatrinh chu cftn cung c~p cho t;\iptin oanh d~u, no co phftn rna rQng 1a VB ho?c
Trang 19.ASPX.VB (n~u t?O b~ng Visual Studio.NET) Cac t?P tin chua rna phia trinhchil se co d?ng nhu sau:
Imports
Public Class tenl&p : Inherits Page
, Khai bao bi~n, Cac ham xu ly sv ki~nSub Page_Load(sender as Object, e As EventArgs)End Sub
End Class
Web Form cho phep l?p trinh vien dinh nghla them cac sv ki~n va tralc)'icac sv ki~n do trong trang web nhu nhfip chuQt VaGnut diSu khiSn, IvachQn danh sach, nhfip chuQt VaGcac the lien k~t
Dong rna du6i day cho ta thfiy cach them mQt sv ki~n phia trinh khachVaGdiSu khiSn trinh chli :
<asp:Button OnClick="button_click" runat="server" />
Ta cling co thS g~n cac sv ki~n phia trinh chil cho cac diSu khiSn
HTML chllAn b~ng cach sil' d\lng thuQc tinh OnServerClick
<input type="submit" OnServerClick="submit_ click" runat="server">Khi da them thuQc tinh sv ki~n VaGcac diSu khiSn, ta c~n phai them VaGdo?n rna phla trinh chli tuong ling, do?n ma nay se duqc thvc hi~n m6i khi Sl,l'ki~n phia trinh khach xay ra Cac sv ki~n phia trinh chli dSu co d?ng va cactha111s6 tuong tv nhau Du6i day la mQt diSn hinh dS khai bao ham n~m b~t
sv ki~n phla trinh chil :
Sub myButton_Click(Sender as Object, Arg as EventArgs)
2.1.5 Sll' duog dac doh AutoPostBaek :
Ben c?nh nhCing sv ki~n thong thucmg nhu nhfip chuQt VaGnut diSukhiSn, mQt s6 diSu khiSn khac co h6 trq sv ki~n postback Sv ki~n nay xay rakhi ta 1\1'3 chQn nhling m\lc trong danh sach ho~c thay d6i nQi dung trongTextbox Nhung vi nhling lo?i sv ki~n nay xay ra kha thucmg xuyen nen m~cdinh d~c tinh AutoPostBack = false, nhu V?y thi nhling sv ki~n nay m6ikhong tv dQng t?O thanh sv ki~n gai len may chilo Vi V?y, n~u b?n mu6n gai
Trang 20Chuang 2 : Xay dung trang Web v6'i ASP.NET C2 - 5
mQt thong di~p nao d6 tu phia trinh khach len trinh chu thi b~n ph~li themthuQc tlnh AutoPostBack vao diSu khi€n va gan cho thuQc tinh nay b~ng true
2.2 cAe DIEU KHIEN HTML SERVER:
Cac diSu khi€n HTML Server la cac diSu khi€n HTML thong thuOngnhlJ-ng c6 them thuQc tinh runat="server"
2.2 J Thuoc tinh RunAt= "Server" :
Chi c~n them runat="server" vao cac diSu khi€n HTML chufrn, chung
se tra thanh cac diSu khi€n HTML Server Khi b~n them thuQc tinhrunat="server", b~n da cho ASP NET biSt b~n mu6n diSu khi€n HTML duQ'c
XLI' ly a phia trinh chu Nghla la b~n c6 th€ su d\mg rna phia trinh chu d€ dQcho~c gan thuQc tinh cua diSu khi€n d6 cling nhu ngay ca xu ly cac SlJ ki~n
Cac d~c tinh va phuong thuc cua 16'p HTMLControl co So' :
Id Property id="myText" Day la ten de nh~n d~ng
diSu khi€n luc thvc thi phfatrinh chu
runat Property runat="server" Danh dau dieu khien duQ'c
thvc thi phia trinh chu Chic6 mQt gia trj cho the runat
la "server"
disable="true" Them thuQc tinh disabled
vao diSu khi€n khi trangweb duQ'c gai t6i trinh
du ~t
style="font-family:arial" Gan mQt ho~c nhieu lo~i
Cascading Style Sheet vaodiSu khi€n HTML
ut runat="server"> Tra ve ten the cua dieu
Trang 21Phim tat cho dieu khienT~ h cac thuQc tinh tu ' cua dieu khienMau nen cua dieu khien
Mim vien cua dieu khienKieu vien cua dieu khien:8QrQn duon vien cua dieu khienL' CSS eua dieu khien
Neu true, dieu khien se ho?t dQl1 , can false thi n uqc l?i
La thon tin ve font chfr cua dieu khienMau chu' cua dieu khien
Chieu cao cua dieu khienLo?i thuQc tinh CSS cua dieu khienChi so tab cua dieu khien
Huang d~n cho dieu khien se hi~n len khi nguai dung rechuQt len diSu khiSn
khien 0vi dv ben thitagname ="input"
InnerHtml Method <span> Tra vS (ho~e gan) nQi dung
<b>Test<lb> HTML atrong diSu khiSn
</span> ("<b> Test</b>")InnerText Method <span> Tra ve (ho~e gan) nQi dung
<b>Test<lb> van ban thu~n, khong co
</span> the HTML ("Test")
Day la nhCing diSu khiSn mai duqe Microsoft phat triSn them, co nhiSud~c trung hCl'uich Trong t~p tin co ph~n rna rQng ASPX, cac diSu khiSn nayduQ'c nhcfm bi~t bai ti~p d~u ngfr "asp:" nhu asp:Label, asp:Button ho?casp:TextBox Ben qmh nhfrng diSu khiSn thuQc biSu m~u (Form) nhu nhan(label), nut l~nh (button), danh sach (listBox) can co mQt s5 cac diSu khiSnvai nhu'ng n1l,1cdich d~e bi~t nhu Calendar Oich), AdRotator (biSu diSn cacbiSu ngCi'quan cao tren trang Web)
2.3.1 Lop Web Control:
H~u h~t cac diSu khiSn Web server dSu duqc d~n xu~t tu lapSystem.Web.UI.WebControls.WebControl Bang duai day 1i~t ke nhfrng d?ctinh thucmg co at~t ca cac diSu khiSn Web Server
Trang 22Chuang 2 :Xay dlmg trang Web vai ASP.NET C2 -7
I Width I ChiSu r9ng clla diSu khiSn
2.3.2 Tuang tae vai Form khae:
NSu ta Slr d\mg thu9C tinh runat="server" thi se t~wForm tv tuong tacv6"ichinh no, khong th@gai dfr li~u dSn Form khac Tuy nhien, doi khi ta c~nmoc n6i hai trang lC;liv6"inhau b&ng cach gai dfr li~u tu Form nay dSn Formkhac BS lam duqc nhu v~y thi ta phai bo khong Slr dVng thu9C tinhrunat="server" trong the <form> r6i them thu9C tinh method va action vaoForm
<form action="myPage.aspx" method="post">
NSu bC;lnthem thu9C tinh method va action vao m9t the <form> co chuathu9C tinh runat="server", ASP NET se ph6"t10' cac thu9C tinh method, action
va tC;lOm9t Form tv tuong tac v6"ichinh no
La cac di~u khiSn duqc dung dS ki@mtra tinh hqp l~, xac thl;fc du' li~u
ma nguc)'i dung nh~p vao tu Web Form
M~c du cac di~u khi@nki@mtra la cac d6i tuong phia trinh chil, nhungcac di~u khi@nnay v~n co th@phat sinh rna phia trinh khach d@thong bao l6icho nguO'i dtmg biSt ngay sau khi Form duqc gai len may Chll nhung tru6"ckhi trinh dlly~t kSt n6i duqc v6"i may chilo Vi~c nay ch~ng nhung cai thi~ndll'qc giao di~n ung dVng cho nguO'i dung cu6i rna con giam s6 luqng yeu c~uHTTP go'i t6"i Web Server f)i~u khi@nki@mtra chi phat sinh rna phia trinhkhach v6"i nhu'ng trinh duy~t co h6 trq HTML d9ng (DHTML) nhu laMicrosoft Internet Explorer phien ban 4.0 tra len Ta co th@lam di~u khi@nkiSm tra khong bao giO'phat sinh ma phia trinh khach b&ng cac gan cho thu9Ctinh EnableClientScript cila di~u khi@nb&ng False
Ca nam 10C;lidi~u khi@nkiSm tra d~u duqc d~n xu<1ttu cac l6"p co So' :WebControl va BaseValidator Vi thS ma cac di~u khi@nki@mtra d~u co m9ts6 d~c tinh chung:
f)~c tinh
ControlTo Validate
Trang 23Neu co gia tri Dynamic, thi dieu khien chi chiem ch6 m6ikhi thong bao 16i, can khong thi no khong h~ chi~m ch6tren trang Web N~u gia tri hi Static thi du co 16i haykhong, di~u khit3n vftn chi~m mQt khoang khong giannh~t dinh tren trang Web Can n~u gia tri 1aNone thidi~u khit3n se khong thong bao 16i cho nguai dung, vi~cnay se huu ich khi ta Slr d\lng k~t hQ'Pvai di~u khit3nYalidationSumma
Chua diu rna ta muon thong bao 16i vai nguai dung.ErrorMessa e co tht3chua rna HTML
2.4.2 Cae loai di~u khidn kidm tra: co 5 lo~i :
nh?p thong tin VaGdi~u khit3n nh?p 1i~u (TextBox, TextArea) Day 1adi~u khit3n kit3m tra duqc dung nhi~u nh~t
nh?p dCi'li~u VaGhai di~u khit3n nh?p co gi6ng nhau hay khong (kit3mtra vi~c xac nh?n m?t kh~u) 6 di~u khit3n nay, ngoai thuQc tinhContro1ToYalidate, ta cfin phai them VaGthuQc tinh Contro1ToComparedt3chi ro ra gia tri cua di~u khit3n nao rna ta mu6n so sanh Tuy nhien,
ta cling co tht3 Slr d\lng di~u khit3n nay dt3kit3m tra xem dfr 1i~u nguaidung nh?p VaGco b~ng vai mQt gia tri C\ltht3nao khong b~ng cach thaythuQc tinh Contro1ToCompare b~ng thuQc tinh Ya1ueToCompare
• Range Validator : dam bao nguai dung nh?p VaG gia tri trong khoang
cho phep Gia tri Ian nh~t va nh6 nh~t nguai dung duqc quy~n nh?pVaGduqc chi ro bai cac thuQc tinh MaximumYa1ue va MinimumYa1ue
• RegularExpression Validator : kit3m tra xem dfr li~u nguai dung nh?p
VaGco dung vai mQt mftu duqc dinh nghla truac hay khong Yi d\l nhuchi mu6n nguai dung nh?p toan chfr ho?c toan s6, ho?c kit3m tra xemnguO'i dung co nh?p dia chi email hQ.P1~khong
duQ'c thvc hi~n vai cac di~u khit3n a tren thi ta phai tv lam vai di~ukhi~n CustomYalidator Day 1a di~u khit3n cho phep ta tv t?o fa cacham cua minh dt3giai h?n l~i vung nguai dtmg duqc nh?p
• Ngoai cac di~u khit3n tren dung dt3kit3m tra tinh hQ'P1~, thi ASP.NET
can cung c~p cho ta di~u khit3n ValidationSummary dt3 h6 trq vi~cthong bao 16i Di~u khit3n nay duqc dung dt3 nhom cac thong bao 16i
Trang 24Chuang 2 : Xay dung trang Web v6i ASP NET C2 - 9
(EITorMessage) cua mQt vai di~u khi~n ki~m tra hgp l~ va xu~t hi~n l6ivao mQt ch6 Nhu V?y thi ta co th~ hoan toan cho ~n cac diSu khi~nki~m tra hgp l~ (gan thuQc tfnh Display b~ng None) r6i sir d\lngValidationSummary d~ thong bao l6i
2.5 cAe DIEU KHIEN TUDINH NGHiA :
Ta co th~ tv t~o ra cac diSu khi~n b~ng cach rna rQng cac diSu khi~nho?c nhom cac diSu khi~n co s~n d~ co them mQt s6 tfnh nang mai Cac diSukhi~n tv dinh nghla nay se dugc lUll vao cac t?P tin co ph~n rna rQng ASCX
MQt trong nhfrng thu?n 19i cua vi~c t~lOdiSu khi~n tv dinh nghla la ta coth~ su' d\lng l~i diSu khi~n a nhiSu trang khac nhau trong moi truemg
ASP.NET Trong cac phien bc::mASP,NET truac, ta cling co th~ sir d\lng l~i
cac ham b~ng cach #include cac t?P tin co s~n vao Tuy nhien, lam nhu V?y selam cho vi~c th\l'c thi bi ch?m l~i vi qua trinh bien dich cac trang
2.6 KET LuAN :
6 chuong nay, chung ta da tim hi~u vS ASP.NET Web Form, cac cachviSt rna cho mQt trang web cung vai cac diSu khi~n HTML Server, cac diSukhi~n Web Server c~n thiSt d~ xay d\l'llg trang web Ben qmh do, con conhu'ng diSu khi~n ki~m tra tinh hgp l~ cho phep ta b~t bUQcnguai dung ph~ti
nh~p dung nhfrng gi ta mong mu6n Cu6i cung la tim hi~u sa lugc vS 19i fch
Clla cac diSu khi~n tv dinh nghTa Qua do, ta co th~ xay d\lng trang web coch~t luqng trong moi truemg ASP.NET
Trang 25CHUONG 3 : QUAN L Y TRUY C~P vA KET NOI
3.1 - KHAI QUAT:
Vi~c truy C?P dfr li~u suy cho cung cung la mQt t?P hqp cac lap NET
FRAMEWORK duQ'c giai thi~u la ADO.NET. Day la mQt t?P hQ'p cac lap d~idi~n cho phien ban k~ ti~p cua cac D6i tUQ'ng dfr li~u ActiveX (ADO -ActiveX Data Objects) V~n gifr l~i mQt s6 cac tieu biSu cua m6 hinh d6i
tUQ'ng ADO da: t6n t~i - ch~ng h~n nhu lap Connecton va lap Command, lamvi~c tuung tv nhu truac - ADO.NET khac d~n mQt muc dQ quan trQng so vaiADO truySn th6ng atrong nhiSu truang hQ'p, bao g6m nhu :
• ADO truySn th6ng lam vi~c trong mQt kich ban co lien k~t vai nhau
k~t vai nhau
dung dS truy C?P du- li~u_
Trong ADO truySn th6ng, hai lap nay duQ'c gom chung vai nhau.
• ADO truySn th6ng n~m a vi tri tren so vai OLE DB Tftt ca cac truyC?P dfr li~u dSu lam vi~c truac vai nhfrng cung cftp OLE DB
phai la OLE DB, va ca vai bQ cung cftp dfr li~u cua SQL Server NET,day la nhfrng cung cftp kh6ng co trong OLE DB
• Lap DataSet cua ADO.NET co thS n~m gifr nhiSu bang cu so dfr li~utrong d6i tUQ'ng DataTable No th?m chi con h6 trQ' cac quan h~ va cainhin cu ban trong DataTable
NguQ'c l~i, Recordf:et ella ADO truySn th6ng co ki~n truc dS n~m gifrduy nhftt mQt t?P hQ'p k~t qua; co mQt cach dS t~o nhfrng t?P hQ'p k~tqua kh6ng co quan h~ l~i vai nhau, nhung no rftt kh6ng hfru ich
• Khi C?P nh?t du' li~u trong Recordset cua ADO truySn th6ng, chung takh6ng thS diSu khiSn vi~c C?P nh?t diSn ra nhu th~ nao
Trong ADO.NET, khi C?P nh?t dfr li~u chua trong nhfrng DataSet,chung ta co thS xac dinh r5 rang vi~c C?P nh?t duQ'c thllc thi ra sao va
Trang 26Clmung 3: Qu,'m Iytruy dip va k~t n6i CSDL v6i ADO.NET C3 - 2
trong thlJc t~, ADO.NET trlJc ti~p giao cho nguai dung tlJ luu trfrnhu'ng phuO'ng thuc dS trinh diSn vi~c c~p nh~t
dan Ierna khong cfin thi~t t~o ra m<)tDataSet
ADO truySn th6ng khong he>tr9' diSu nay.
DataSet cua n6 vai cac t~o tin XML va schema
ADO truySn th6ng thi bi giai h~n trong vi~c he>tr9' cho XML.
3.2 - PHAN DOl ADO.NET :
ADO.NET du9'c t~o thanh tu' 5 namespace, c6 thS t6m gQn trong bang3.1 nhu sau :
Bao g6m nhfrng lap Co' ban du9'c thua k~ cuaOLEDB va b<) cung c~p dfr li~u SQL Server.NET Chung ta se khong phai lam vi~c tn,rc ti~pvai nhfrng lap nay
Bao g6m nhfrng lap Co' So'dfi' li~u lam vi~c vainhfi'ng b<)cung c~p dfr li~u cua OLE DB Nhfi'nglap chli y~u g6m c6 : OleDbConnection,
OleDbCommand, OleDbDataReader va
oleDbDataAdapter
Bao g6m nhfi'ng lap Co' So' dfi' li~u lam vi~c vaiSQL Server thong qua giao thuc TDS (TabularData Stream) nguyen ban cua n6 Nhfrng lapchli y~u bao g6m SqlConnection, SqlCommand,SqlDataReader va SqlDataAdapter
Bao g6m nhfi'ng lap lam vi~c vai nhfi'ng kiSu dfrli~u nguyen ban cua SQL Server
Trang 27Nhu'ng namespace trung tam clla ADO.NET la System.Data,System.Data.OleDb va System.Data.SqIClient Noi chung, chung ta se kh6nglam vi~c tnlc tiSp v6i System.Data.Common Namespace nay duQ'c cung c~pv6i n1\lc dfch chinh la danh cho ben cung c~p t~o ra nhfrng bQ cung c~p dfrli~u Them v~lO do, namespace System.Data.SqIType ho~t dQng nhu mQt bQquy~n (role) tuong d6i nh6 trong vi~c s~p xSp nhfrng kiSu dfr li~u clla SQLServer sang kiSu dCi'li~u NET.
ADO.NET duQ'c chia thanh hai ph~n Vi~c phan d6i ADO.NET nay naysinh ttl' thvc tS namespace SystemData va 16p din ban Clla no, 16p DataSet, chilien quan t6i vi~c luu trCi'trong bQ nh6 clla dCi'li~u va kh6ng lien quan gi dSntruy C?P duo li~u hay co sa dCi'li~u Trong khi nguQ'c l~i do, cac namespaceSystem.Data.OleDb va System.Data.SqIClient thi l~i Chll ySu lien quan t6ivi~c truy C?p dfr li~u va kSt n6i v6i co sa dfr li~u dS dQC va ghi cac m~u ghi(record)
Vi~c phan d6i ADO.NET duQ'c m6 ta mQt cach gian luQ'c trong hinh3.1 Phfa ben trai la nhCi'ng 16p tu nhCi'ng namespace Clla nhfrng bQ cung c~pduoli~u NET (System.Data.OleDb ho?c System.Data.SqIClient), co lien quant6i vi~c giao tiSp v6i nhfrng co sa dCi'li~u co quan h~ (cung nhu cac ngu6n dCi'li~u khac) Phia ben phai la nhCi'ng lap duQ'c cung c~p b6i cac 16pSystem.Data, co lien quan t6i vi~c luu trCi'trong bQ nh6 clla dfr li~u va vi~cdQc - ghi cua XML
Trang 28Chuang 3: Quan 1)1truy cap va k~t n6i CSDL v6i ADO,NET C3 - 4
Cac lap clla cac namespace System.Data.SqlClient va System.Data,OleDb la nhfrng lap chiu trach nhi~m vS truy C?P dfr li~u tu SQL Server
va ngu6n dfr li~u OLE DB m(>t cach tu~n t\1' Cac lap nay chua cac lapConnection, Command, DataReader va DataAdapter Day la ten clla nhfrnglap chung nh~t Khi lam vi~c vai nhfrng lap nay, chung ta se them vao d~um6i lap tiSp d~u ngfr "Sql" dS Slr d\mg nhfrng lap cung c~p dfr li~u clla SQLServer NET , ho~c "OleDb" dS Slr d\lng nhfrng lap cung c~p dfr li~u clla OLEDB
• Ta dtmg lap Connection dS thiSt l?p m(>t kSt n6i cho vi~c g~n kSt vai b(>cung c~p dfr li~u
• Ta dung lap Command dS thgc thi cac l~nh SQL va cac phuang thuc
luu tru' (stored procedures).
• NSu m(>t lap Command thgc thi m(>t l~nh SQL ho~c phuang thuc luutru' va tra vS m(>t mfiu ghi (record), ta co thS dung lap DataReader dScung c~p con tro chi dQc, chi dy~t tai cho mfiu tin nay
• Ta dtmg lap DataAdapter dS thgc thi l~nh SQL ho~c phuang thuc luutru' va them vao m(>t DataSet (la thanh ph~n clla namespaceSystem.Data) vao trong mfiu ghi Theo m(>t cach khac, ta cling co thSdung DataAdapter dS quet m(>t DataSet dS C?P nh?t cac dong va th\l'chi~n nhfrng thay d6i cho cO' So' dfr li~u
Nhfrng lap clla namespace System.Data chiu trach nhi~m luu trfr dfrli~u trong b(> nha, ng~t kSt n6i vai luu trfr dfr li~u Lap chinh clla namespacenay la lap DataSet Lap DataSet chua m(>t s6 luqng cac lap khac, bao g6m16p DataTable, chu'a nhfrng t?P hqp dfr li~u trong m(>t kh6i hinh chfr nh?t (gQi
la bang), L6p DataTable con chua l6p DataRows, la nhfrng dong rieng bi~tClla du' Ii~u Lap DataSet con chua l6p Data Views, la nhfrng bimg da lQc vas~p xSp theo thu tg Clla cac DataTable, va chua lap DataRelations, la nhu'ngquan h~ giu'a cac DataTable
Ta co thS t~o ra m(>t DataSet va diSn dfr li~u vao trong no b~ng r~t nhiSu cachkhac nhau Ta co thS t~o nen DataSet va toan b(>du' li~u clla no b~ng cach viSt
ma, Cung co thS t~o ra DataSet b~ng m(>t t?P tin XML Tuy nhien, tieu biSuhan, ta se t~o ra DataSet til Co' So' du' li~u b~ng cach dtmg m(>t trong cac lapDataAdapter DataSet khong chi chua dfr li~u m(>t chiSu, ta co thS C?P nh?t
Trang 29nQi dung clla no va sau do gui nhfrng c~p nh~t nay tra ngugc vS cho co sa dfrli~u (cling dung cac lap DataAdapter) ho?c cho t~p tin XML.
3.3 - GAN KET DU LIEU:
ASP.NET cung c~p nhiSu g~n kSt r~t phuc t:;tp va m:;tnh dS h6 trQ' chodu' li~u clla b~t cu diSu khiSn nao rna ta d?t tren trang Web Trong tht,rc tS,th~111chi co thS kh6ng c~n co phai co diSu khiSn ta co thS th~m chi g~n kSttu'ng ph~n nho clla HTML tren trang
DS g~n kSt mQt ngu6n dfr li~u ta c~n tht,rc hi~n hai vi~c :
1 Dung Cll phap g~n kSt dfr li~u Clla ASP NET dS neu ro mQt thuQctinh ho?c mQt do:;tn van ban nguyen g6c tren trang ma b:;tn mu6n g~nkSt vai biSu thuc g~n kSt dfr li~u Cll phap g~n kSt dfr li~u la :
3.3.1 - G~n k~t vo'i thuQe tlnh, phU'o'ng th(re va ham:
Do:;tn ma OLE DB vi dv 3.1 se rninh hQa cho vi~c g~n leSt vai thuQctinh phuong thuc
<scri pt language="vb" runat=" server">
Sub Page_Load(sender As System.Object, e As System.EventArgs)
Trang 30Chuang 3: Qmin 1)' truy dip va k~tubi CSDL v&iADO.NET
Public Shared Function GetNowO As DateTime
Vi du 3.1 : Example_DataBind.aspx - vo'i ASP.NET ta co thi grm kit bizt C~l'
gi ki ca Thw)c tinh va Phuong thu'c
6 do~m ma tren, ta da g~n HTML nguyen van vai phuong thll'CRandomNumber cua lap Stuff:
<p><b>Random Number: </b><%# StufJRandomNumber %></p>
Vi~c g~n kSt mQt h~llnkhong thuQc mQt lap 11110 d6 eling gi6ng nhu vi~eg~n kSt eho phuong thue eua lap nhu tren
Trang 31Va a do~m rna tren, ta da cling g~n thuQc tinh Text cua diSu khiSnTextBox cua may chu vai thuQc tinh GetNowO cua lap Stuff:
£)o~mrna vi dl,l3.2 se minh hQa cho vi~c g~n kSt vai mQt m~mg
<script language="vb" runat="server">
Private Sub Page_Load(sender As System.Object,e As System.EventArgs)
If Not Page.IsPostBack Then
Dim aColors(4) As String
Trang 32Chuang 3: QlIan Iytruy dip va k~tn6i CSDL vai ADO.NET
">" & strColor & "</font>"
End Sub
</script>
<html>
<body>
<form id="Forml" method="post" runat="server">
<asp:Label ID=lblTitle Runat=server Text="<h2>Array Data_
xample</h2>" I>
<p><asp:DropDownList ID=drpColors Runat=server I>
<asp:Button ID=cmdSelect Runat=server _
Text="Select" OnClick=cmdSelect Click I>
chu DropDownList vai m9t Mang
3.3.3-G~u k~t vo'i Nhu'ug di~u khi~u dauh sach phuc t~p v6'i l6'p DataSet:
Lap ADO.NET DataSet la m(>tlap dS tiSp c~n dS g~n kSt No cung c~pl11(>tb(>ChLl'atrong b(>nha cho dfr li~u Bim than DataSet khong thS chua tn;l'ctiSp nh[l'ng dong Clla dfr li~u Thay vi chua DataTable la nhu'ng lap th~t S\1'ch(ra nhfi'ng dong va c(>tclla dfr li~u, DataSet chua d6i tugng Data View ma tadung dS lQCva s~p xSp theo thu t\1'dfr li~u tim th~y trong DataTable Themvao do, m6i d6i tugng DataTable co m(>tthu(>ctinh DefaultView tni ra nhfrng
bang nhin ca ban CllaDataTable.
Ca DataSet l~n DataTable d~u kh6ng h6 trg vi~c g~n kSt dfi' li~u tr\1'ctiSp Tuy nhien, d6i tugng Data View dua ra nhfrng giao di~n c~n thiSt dS h6trQ'g~n kSt duoli~u
3.3.3.1 - G~n k~t vo'i Di~u khi~u DataGrid :Kh6ng gi6ng nhu di~u khiSn DropDownList va TextBox, di~u khiSnmay Chll DataGrid la m(>tdi~u khiSn phLl'ct?P dung dS chua cac dong va c(>tClla duoli9U Ta se tim hiSu ky han v~ vi~c lam thS nao dS trinh diSn cac dong
va c(>t clla dfi' li~u 6 cac ph~n sau Tuy nhien, DataGrid co m(>t thu(>c tinh
Trang 33AutoGenerateColumns khi dugc thiSt l?p la True, se tv t~wra cac c<)ttuO'ng
lrng v6i cac c<)tdu'9'c l~y ra trong DataSet
M<)tkhi DataSet dugc t~o ra, do~n rna sau se cho biSt vi~c g~n kSt dugcth\l'c hi~n a day:
<ID cua DataGrid>.DataSource = ds.Tables(O).DefaultView
Call BindDataSetO
a day, BindDataSetO la phuO'ng thuc DataBind cua diSu khiSnDataGrid chu khong phai cua d6i tugng Page No se dung hi~u qua han khiphai gQi d6i tugng Page vi luc do ta se phai quet toan b<)trang dS tim cac biSuthll'Cg~n kSt dfr li~u thich hqp dS th\l'c hi~n vi~c g~n kSt
Ngoai ra, khi thu<)cAutoGenerateColumns cua diSu khiSn DataGrid khidugc thiSt l?p la False, ta cling co thS chia tung c<)trieng bi~t b~ng cach dungdiSu khiSn BoundColumns :
<asp:BoundColumn HeaderText=LastName DataField=LastName/>
<asp: BoundColumn HeaderText=FirstName DataField=FirstName/>
3.3.3.2 - G~n k~t vo'i Di~u khi~n DataList :
M<)tdiSu khiSn khac trong danh sach cac diSu khiSn may chu dugc gi6ithi~u la diSu khiSn DataList Di cung v6i diSu khiSn nay la diSu khiSn
DataRepeater dugc biSt dSn nhu la m<)tdiSu khiSn m~u bai vi no cho phep tadiSu chinh m<)tcach r5 rang cai nhin cua diSu khiSn b~ng cach h6 trg nhfrngkiSu m~u cho nhli'ng phftn da d~ng cua no
3.4 - KET LuAN :
Cong ngh~ NET co thS noi da gi6i thi~u cho chung ta ADO.NET - m<)tthS h~ m6i cho vi~c truy C?P dli' li~u cua nhfrng chuang trinh ung d1,1ngphantan ADO.NET giup cho chung ta nhli'ng k9 thu?t m6i dS cung c~p nhanh han,thu?n 19i han vS dfr li~u cho cac giai phap m~mg Co'ban D6ng thai vi~c kStn6i Co' sa dli' li~u, l~y dfr li~u, C?P nh?t dfr li~u, cling nhu th\l'c hi~n cacchuang trinh con dSu r~t dS dang Day chinh la nhling uu diSm r5 rang nh~t
ma cong ngh~ NET noi chung va ASP.NET noi rieng mu6n dua t6i chonguo'j SLl'd\lng
Trang 34Phal1 tfch co sa dfr lieu 1
Bank AcciO <pi> VA10 <M>
co LenhOalMua Malenh <pi> VA50 <M>
OT
TinTuc MaTT <pi>
TieuOe NoiOung NgayOuaTin pk_MaTT <pi>
O,n
<M>
<pi> VA50
MN8 I
OT
<-pi>" W,18 <M>
VA1DO MN8 MN8 VA20
MaGO <pi> VA50 <M>
Trang 35II. MO TA.CO s6 nuLIEU:
Ca So' dfr li~u ella h~ th6ng bao gam eae bang v6i eae quan h~ nhu sau :
I" _
TINTUC ,.
2 MATT _ T1ELOE -~~~T1N
r -OIAODICH '1/ MAGD MACP USERNAM[
PI-UEN GIACHOT NGAVKHOPlE~
SOlUONG lENH
LENHOATBAN '1/ MAlE~
MACP USERNAME GJABAN
SOLUONGBAN
NGAVBAN
THONGKE :-\7 NGAV
i ~ PHIEN
''1/ MACP COMMENT
• Bang StockUser : luu trfr thong tin vS nguai dung nhu :
- Username: ten dang nh~p ella nguai dtmg (Ia
khoa ehinh)
- Password : m~t rna dang nh~p ella nguai dung.
- Hoten : hQ ten ella nguai dung.
- Phai : gi6i tinh ella nguai dung.
- Ngay sinh : ngay thang nam sinh ella nguai
dung
- CMND
dung
- Email: dia ehi email ella nguai dung,
- AccID : s6 tai khoan trong ngan hang ella nguai
Trang 36Phan tfch co s6' dfr lieu 3
nguai quan trio
Bang duqc cac khoa ngo?i tham chiSu tai c(>t Username tu cac bangLenhDatMua, LenhDatBan, ChitietUser, Giaodich
• B~ng ChitietUser : luu tru cac thong tin c6 phiSu ma nguai dung So' huugom
- Username: ten dang nh?p clla nguai dung.
- MaCP: rna cac lo?i c6 phiSu ma nguai dungSo' huu
huu
tinh tu s6 c6 phiSu h9 co duqc
Khoa chfnh clla bang la 2 c(>tUsername va MaCP Bang co cac khoa ngo?i
tham chiSu tai bang Chungkhoan (c(>t MaCP) va bang StockUser (c(>tUsername)
phiSu duqc mua ho~c ban
- MaCP: rna cac lo?i c6 phiSu duqc glao
- Soluong: s6 c6 phiSu mua ho~c ban duqc.
- Lenh: rna l~nh mua ho~c ban clla c6 phiSu.
- Phien: s6 thu tv phien giao dich trong
ngay
Khoa chinh clla bang la c(>tMaGD Bang co cac khoa ngo?i tham chiSu tai
bang Chungkhoan (c(>tMaCP) va bang StockUser (c(>tUsername)
Trang 37• Bang Th6ng ke : luu tru v@th6ng ke cac phi en giao dich trong tUng
thvc hi~n
cua tung giao dich
l~n giao dich
Khoa ehinh cua bang bao g6rn 3 cQt la MaCP, Ngay va Phien Bang co khoango~i tharn chi@ut6i cac bang Chungkhoan (cQt MaCP)
tren thi truang chung khoan thanh ph6 H6 Chi Minh nhu sau
truang chung khoan
khoan
hanh chung khoan
cong ty
Khoa ehinh cua bang la cQt MaCP Bang duqc cac khoa ngo~i tharn chi@ut6i eQt Usernarne ttl' cac bang LenhDatMua, LenhDatBan, ChitietUser,Giaodich
ho~c ban
ban c6 phi@u
Trang 38Phan tich co so' dfr lieu
lenhDatBan
)j Malenh MaCP Username
Giaban
So Iuongban Ngayban
5
ho~c ban
nguai dung d~t l~nh mua ho~c ban
l~nh mua ho~c ban
- AeePas: m?t rna tai khoan clla nguai dung.
- Hoten : hQ ten cua nguai dung.
- Phai : gi6i tinh cua nguai dung.
- Ngay sinh: ngay thang nam sinh cua nguai dung.
- CMND : s6 chung minh nhan dan cua nguai dung.
- Diaehi : dia chi cua nguai dung.
khoan.
- Tienmat : s6 tiSn cua nguai dung sa huu duQ'c.
Kh6a chinh clla bang la cQt AccID Bang duQ'c kh6a ngo~i tham chi~u t6i cQtAccID tu bang StockUser
- MaTT: rna cua tung tin tuc hang ngay.
- TieuDe: tieu dS cua cac tin tuc.
- N(Ji dung: nQi dung cua tung tin.
- NgayDuaTin: ngay tin tuc duQ'c dang.
Kh6a chinh cua bang la cQt MaTT