Đặc tả sơ lược hệ thống xây dựng chương trình thi trắc nghiệm :
Hiện nay , hình thức thi trắc nghiệm đã được Bộ Giáo Dục và đào tạo khuyến khích đưa vào sử dụng trong các trường , lớp . Tổ chức các cuộc thi trắc nghiệm như thế rất cần thiết để đánh giá đúng khả năng và kiến thức của học viên .
Hệ thống này sẽ tạo ra công cụ cho Giáo Viên soạn câu hỏi trắc nghiệm và công cụ hổ trợ Giáo Viên soạn đề thi . Sinh Viên sẽ thi trực tiếp trên máy Client và hệ thống sẽ tự chấm điểm . Điểm thi sẽ được hệ thống công bố liền hoặc được công bố sau . Giáo Vụ sẽ lên danh sách sinh viên dự thi của các môn thi và qui định bộ đề thi của sinh viên lấy từ ngân hàng đề thi . Nếu Giáo Vụ không qui định bộ đề thi thì sinh viên sẽ thi trực tiếp từ ngân hàng đề . Sinh Viên đến dự thi đúng lịch thi , và thi trực tiếp trên máy tính Client . Sau khi thi xong hệ thống sẽ tính toán điểm thi , cập nhật điểm thi và bài làm của sinh viên vào cơ sở dữ liệu trên máy . Để đảm bảo tính công bằng của cuộc thi , các đề thi của sinh viên đều được hệ thống hoán đổi ngẫu nhiên vị trí các câu hỏi và câu trả lời của đề thi đó .
102 trang |
Chia sẻ: netpro | Lượt xem: 2041 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Luận văn Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
duïng caùc phieân baûn VB cuõ , baïn seõ thaáy caùc thay ñoåi veà kieåu döõ lieäu soá trong VB.NET . Caùc thay ñoåi naøy nhaèm baûo ñaûm tính töông thích vôùi caùc ngoân ngöõ .NET khaùc vaø döïa treân tieâu chuaån thöïc thi trong CLR . Chaúng haïn nhö kieåu Decimal laø 16 byte , thay vì 14 byte trong VB cuõ ; Double vaø Single khoâng thay ñoåi .
Caùc kieåu Integer hoaøn toaøn thay ñoåi , Integer thay cho Long trong VB cuõ , hieän taïi laø 4 byte , coøn Long trong VB.NET laø 8 byte , hoã trôï caùc con soá nguyeân 64 bit . Kieåu Short thay cho Integer trong VB cuõ , 2 byte , coøn kieåu Byte khoâng thay ñoåi .
Söû duïng caùc chuoåi :
Kieåu giaù trò String thöïc thi theo class , thay vì theo keát caáu nhö caùc kieåu döõ lieäu soá . String coù kích côõ thay ñoåi tuøy theo neàn thöïc thi . Söï khaùc bieät chuû yeáu veà String giöõa caùc phieân baûng VB cuõ vaø VB.NET laø String khoâng theå khai baùo vôùi chieàu daøi xaùc ñònh Khi giaù trò ñöôïc gaùn cho String , chieàu daøi giaù trò seõ xaùc ñònh chieàu daøi String .
Do caùc chuoãi ñöôïc .NET Framework thöïc thi , chuùng coù caùc ñaëc tính noäi khaùc vôùi caùc phieân baûn VB cuõ . Instance cuûa String khoâng theå chænh söûa sau khi instance ñoù ñöôïc taïo ra ; khi baïn chænh söûa giaù trò , seõ xuaát hieän instance môùi ñeå bieåu thò söï chænh söûa ñoù .
Kieåu döõ lieäu DOUBLE :
Trong VB 6.0 , thaûo chöông vieân hay duøng kieåu döõ lieäu ngaøy (date). ÔÛ caáp ñoä beân döôùi , VB 6.0 chuyeån ñoåi vaø löu ngaøy theo kieåu Double . VB.NET thì khaùc , noù duøng kieåu döõ lieäu Date ñeå löu döõ lieäu ngaøy .
Trình Upgrade Winzard coù khoù khaên khi xaùc ñònh noäi dung cuûa moät bieán Double . Xeùt ñoaïn maõ sau :
Dim dpDate as Double
DpDate = opRecordset (“CancellationDate”)
Upgrade Winzard khoâng theå xaùc ñònh field CancellationDate thöïc söï laø kieåu döõ lieäu Date vaø ñoåi maõ thích hôïp . Thay vì vaäy , trình Winzard ghi nhaän caùc tröôøng hôïp duøng kieåu Double vaø khuyeán caùo neáu baïn duøng ñeå löu döõ lieäu ngaøy thì phaûi ñoåi kieåu döõ lieäu thaønh Date .
Laøm vieäc vôùi DATE :
Kieåu döõ lieäu Date trong VB.NET söû duïng keát caáu DateTime , coù theå bieåu thò caùc giaù trò ngaøy thaùng vaø thôøi gian töø 12:00:00AM , 1/1/0001 ñeán 11:59:59PM , 31/12/9999 . Caùc giaù trò chính xaùc ñeán ns .Keát caáu DateTime coù theå deã daøng xöû lyù caùc soá naøy do soá ñöôïc löu theo giaù trò 64bit.
Caùc tính toaùn vôùi bieán Date ñöôïc thöïc hieän tröïc tieáp , chuùng ñöôïc coi laø giaù trò Integer . Do ñoù , pheùp tröø hai bieán Date seõ laø hieäu thôøi gian (tính theo ns) giöõa hai ngaøy lieân tieáp . Do caùc giaù trò thôøi gian tính theo ns khoâng söû duïng ñöôïc neáu khoâng chuyeån ñoåi , keát caáu DateTime thöïc thi caùc phöông phaùp khaùc nhau ñeå coäng vaø tröø giaù trò Date . Keát quaû ñöôïc traû veà theo keát caáu TimeSpan , coù caùc phöông phaùp ñeå dieãn dòch keát quaû theo daïng thoâng duïng .
Söû duïng caùc giaù trò BOOLEAN :
Neáu ñaõ söû duïng caùc phieân baûn VB cuõ , kieåu döõ lieäu Boolean laø hoaøn toaøn quen thuoäc ñoái vôùi baïn , kieåu naøy khoâng ñoåi trong VB.NET , khaùc bieät duy nhaát laø ñöôïc cung caáp theo kieåu döõ lieäu System.Boolean .
Kieåu döõ lieäu Boolean chæ traû veà moät trong hai traïng thaùi ñuùng/sai , coù/khoâng, … Caùc kieåu Boolean ñöôïc löu theo soá 2 byte , chæ coù giaù trò True hoaëc False . Khi caùc giaù trò Boolean ñöôïc chuyeån sang caùc kieåu döõ lieäu khaùc , False baèng 0 vaø True baèng 1 . Khi caùc kieåu döõ lieäu khaùc ñöôïc chuyeån sang Boolen , soá 0 seõ laø False vaø caùc giaù trò khaùc 0 seõ laø True.
Taïo STRUCTURE :
Trong VB.NET , caùc structure (keát caáu) töông töï caùc class , do chuùng lieân heä moät hoaëc nhieàu thaønh vieân vôùi caùc thaønh vieân khaùc , coù theå chöùa döõ lieäu thaønh vieân , tính chaát , phöông phaùp , vaø caùc bieán coá . Caùc structure hoaït ñoäng khaùc vôùi class , caùc khaùc bieät chính goàm :
+ Caùc keát caáu coù tính thöøa keá .
+ Caùc keát caáu coù theå ñöôïc ruùt ra töø System.ValueType .
+ Bieán cuûa bieán keát caáu chöùa baûn sao döõ lieäu moät caùch tröïc tieáp .
+ Caùc keát caáu thöôøng khoâng keát thuùc . CLR khoâng goïi phöông phaùp Finally cho keát caáu .
+ Caùc keát caáu ñoøi hoûi tham soá khi chuùng coù caùc constructor rieâng . Tuy nhieân , moïi keát caáu ñeàu coù constructor New( ) kieåu public khoâng coù caùc tham soá , khôûi ñoäng caùc thaønh vieân theo giaù trò maëc ñònh .
+ Caùc khai baùo veà thaønh vieân döõ lieäu cuûa keát caáu khoâng coù phaàn khôûi ñoäng .
+ Söï truy caäp maëc ñònh ñoái vôùi caùc thaønh vieân ñöôïc khai baùo theo caâu leänh Dim laø public .
+ Caùc thaønh vieân khoâng ñöôïc pheùp khai baùo theo Protected trong keát caáu .
+ Söï kieåm tra veà tính baèng nhau phaûi thöïc hieän theo söï so saùnh thaønh vieân – thaønh vieân .
+ Caùc keát caáu khoâng ñöôïc pheùp coù phöông phaùp tröøu töôïng .
Structure raát höõu duïng trong ñònh nghóa caùc kieåu giaù trò môùi bao goùi nhoùm caùc bieán . Caùc öu ñieåm khi söû duïng Structure thay vì class theo kieåu giaù trò laø structure khoâng coá ñònh vaø töøng instance cuûa structure ñeàu coù baûn sao döõ lieäu rieâng .
Neáu baïn thieát keá kieåu döõ lieäu môùi , bieåu thò phaàn töû döõ lieäu môùi vaø khoâng caàn môû roäng thoâng qua inheritance , baïn neân duøng structure .
Laøm vieäc vôùi ENUMERATION :
Enumeration vaø caùc kieåu thöøa keá töø System.Enum bieåu thò taäp hôïp caùc giaù trò. Kieåu goác cuûa Enumeration laø giaù trò nguyeân vaø coù theå chuyeân bieät theo Byte , Short , Integer hoaëc Long . Theo maëc ñònh , Enumeration ñöôïc ñònh nghóa theo Integer .
Baïn khai baùo Enumeration baèng caùch duøng töø khoùa Enum , tieáp theo laø teân vaø kieåu . Neáu khoâng chuyeân bieät kieåu , Enumeration seõ coù kieåu Integer theo maëc ñònh.
Söû duïng Enumeration hoaøn toaøn töông töï caùc kieåu bieán khaùc . Moïi giaù trò Enumeration ñeàu phaûi ñöùng sau Enumeration töông öùng .
Baïn coù theå ñònh nghóa Enumeration nhö moät phaàn cuûa module , class hoaëc structure . Neáu Enum laø moät phaàn cuûa class hoaëc structure , baïn phaûi ñaët sau class hoaëc structure ñoù . Baïn coù theå hieån thò giaù trò cuûa enum theo teân hoaëc theo giaù trò nguyeân .
THUÛ TUÏC , HAØM VAØ BIEÅU THÖÙC LOGIC :
Tìm hieåu veà bieán :
Ñònh nghóa bieán :
Nhöõng bieán khai baùo noùi chung ñöôïc duøng ñeå löu tröõ döõ lieäu taïm thôøi khi thöïc hieän quaù trình tính toaùn trong öùng duïng . Ngoaøi bieán , baïn cuõng coù theå khai baùo döõ lieäu cho öùng duïng cuûa baïn nhö moät haèng soá . Haèng soá laø caùc giaù trò khoâng thay ñoåi trong suoát öùng duïng .
Phaïm vi bieán :
Phaïm vi cuûa bieán ñöôïc xaùc ñònh ñoaïn maõ naøo cuûa öùng duïng coù theå truy caäp bieán ñoù . Khi baïn khai baùo moät bieán trong thuû tuïc , chæ nhöõng ñoaïn maõ trong thuû tuïc ñoù môùi coù theå truy caäp hoaëc söûa döõ lieäu ñöôïc löu tröõ trong bieán . Bieán ñöôïc xem laø phaïm vi cuïc boä trong thuû tuïc ñoù .
+ Private Bieán chæ coù theå truy caäp ñoái vôùi ñoaïn maõ trong thuû tuïc khi noù ñöôïc khai baùo (nghóa laø , baát cöù bieán naøo ñònh nghóa baèng Private trong moät lôùp thì coù theå truy caäp tôùi taát caû caùc haøm hoaëc thuû tuïc con trong lôùp ñoù ).
+ Public Bieán ñöôïc söû duïng bôûi baát kyø thuû tuïc naøo trong module maø noù ñöôïc khai baùo ( nghóa laø baát cöù bieán naøo ñònh nghóa baèng Public thì seõ ñöôïc söû duïng vaø coù theå truy caäp beân ngoaøi cuûa lôùp ).
Baïn neân duøng bieán Public trong caùc tình huoáng sau :
+ Khi baïn phaûi truy caäp thoâng tin töø baát cöù nôi naøo trong öùng duïng (nhö thoâng tin veà maøu , veà Font chöõ ).
+ Khi baïn taïo nhöõng haèng soá ñöôïc duøng trong öùng duïng (nhöõng haèng khoâng khai baùo laø Private ).
+ Cho pheùp truy caäp tôùi moät khoâng gian laøm vieäc döõ lieäu maø khoâng phaûi môû nhieàu keát noái ñeán cô sôû döõ lieäu .
+ Khi baïn phaûi truy caäp caùc haøm Window API trong öùng duïng .
Chuyeån thoâng tin :
Khi chuyeån döõ lieäu giöõa hai thuû tuïc , thuû tuïc thöù nhaát (thuû tuïc goïi ) seõ chuyeån döõ lieäu tôùi thuû tuïc thöù hai (thuû tuïc nhaän). Neáu thuû tuïc nhaän söûa ñoåi hoaëc tính toaùn giaù trò maø thuû tuïc goïi caàn thì thuû tuïc nhaän coù theå traû veà giaù trò cho thuû tuïc goïi .
Thuû tuïc con vaø haøm (subroutine) :
Baïn ñaõ bieát caùch truyeàn moät bieán , böôùc keá tieáp laø tìm hieåu caùc kieåu thuû tuïc ñeå truyeàn döõ lieäu . Baïn coù theå söû duïng hai kieåu thuû tuïc : thuû tuïc con vaø haøm .
Söï khaùc nhau göõa chuùng laø caùch döõ lieäu ñöôïc traû veà thuû tuïc goïi vaø thuû tuïc ñöôïc truy caäp . Baïn seõ vieát maõ haàu heát cho nhöõng öùng duïng cuûa baïn baèng vieäc söû duïng thuû tuïc . Khi baïn thieát keá öùng duïng , baïn seõ thöïc thi nhieàu ñoaïn maõ töø nhöõng vuøng khaùc nhau cuûa öùng duïng . Baèng caùch phaân chia ñoaïn maõ naøy ra , baïn seõ ñoïc maõ nguoàn vaø hieäu chænh ñoaïn maõ cuûa noù moät caùch deã daøng hôn .
a. Thuû tuïc con :
Moät trong nhöõng thaønh phaàn thoâng thöôøng nhaát cuûa moät öùng duïng VB laø thuû tuïc con , moät thuû tuïc thöïc hieän moät coâng vieäc xaùc ñònh vaø traû veà ñieàu khieån veà cho thuû tuïc ñaõ goïi noù . Vieäc goïi moät thuû tuïc con seõ ñöôïc chuyeån ñieàu khieån thi haønh töø ñoaïn maõ hieän haønh tôùi thuû tuïc con .
Khi taïo moät thuû tuïc con , baïn neân nhôù nhöõng ñieàu sau :
+ Coá gaéng nhôù nhöõng coâng vieäc coù lieân quan vaøo thuû tuïc con .
+ Neáu coù nhöõng coâng vieäc laëp ñi laëp laïi hoaëc laø seõ ñöôïc goïi töø nhieàu nôi khaùc nhau trong öùng duïng , thì noù neân ñöôïc taïo nhö moät thuû tuïc con .
Neáu thuû tuïc con phaûi keát thuùc tröôùc khi noù ñi tôùi bieåu thöùc End Sub , baïn seõ phaûi theâm bieåu thöùc Exit Sub vaøo ñoaïn maõ .
Khi baïn taïo moät thuû tuïc , thuû tuïc con hoaëc haøm baïn phaûi quyeát ñònh caùch döõ lieäu seõ ñöôïc xöû lyù . Nhôù raèng khai baùo bieán baèng Public seõ thöïc hieän deã daøng hôn khi baïn vieát nhöõng ñoaïn maõ vaøo luùc khôûi ñaàu , nhöng khi baïn phaûi kieåm tra vaø phình to chöông trình thì bieán Public neân haïn cheá söû duïng vaø thay baèng bieán cuïc boä .
b. Haøm :
Söï khaùc nhau giöõa moät haøm vaø moät thuû tuïc con laø coù theå traû veà moät giaù trò cho nôi goïi . Caû hai , haøm vaø thuû tuïc con ñeàu coù theå coù nhöõng bieán ñöôïc truyeàn vaøo theo kieåu ñoái soá . Cuù phaùp cuûa haøm khaùc cuù phaùp moät thuû tuïc con do khai baùo theâm kieåu giaù trò traû veà nhö sau :
[Public | Private | Friend ] [ Overloads ] [ Overrides ][ Protected ]
Function TeânHaøm [( Caùc ñoái soá )] [As kieåu]
[Caùc bieåu thöùc]
[teân = bieåu thöùc ]
End Function
Muoán thoaùt khoûi moät haøm tröôùc khi haøm keát thuùc , baïn duøng phaùt bieåu Exit Function .
Tham chieáu hoaëc tham trò :
Maëc ñònh , taát caû caùc thuû tuïc VB truyeàn döõ lieäu baèng tham chieáu , coù nghóa laø nhöõng ñoái soá coù theå bò thay ñoåi bôûi nhöõng thuû tuïc nhaän . Neáu baïn khoâng muoán döõ lieäu bò thay ñoåi trong thuû tuïc nhaän , thì baïn phaûi truyeàn ñoái soá baèng tham trò thay vì baèng tham chieáu . Ñeå truyeàn ñoái soá baèng trò , baïn theâm töø khoùa Byval vaøo tröôùc teân tham soá cuûa bieåu thöùc khai baùo cuûa thuû tuïc nhaän . Khi baïn truyeàn moät bieán baèng tham chieáu , thuû tuïc con thöïc söï ñang laøm vieäc vôùi bieán döõ lieäu töø thuû tuïc goïi . Ngöôïc laïi , vieäc truyeàn bieán baèng trò seõ truyeàn döõ lieäu tôùi thuû tuïc nhaän vaø seõ ñöôïc ñaët vaøo moät bieán cuïc boä trong thuû tuïc ñoù .
Caùch xaây döïng logic cho chöông trình :
Thay ñoåi doøng ñieàu khieån :
Ñeå thöïc hieän moät caùch coù ñieàu kieän baát kyø ñoaïn maõ naøo trong öùng duïng , tröôùc tieân baïn phaûi kieåm tra ñieàu kieän aùp ñaët . Vieäc kieåm tra naøy goïi laø thöû ñieàu kieän . Neáu ñieàu kieän laø True ñoaïn maõ coù lieân quan seõ ñöôïc thöïc hieän , neáu ñieàu kieän laø False ñoaïn maõ coù lieân quan seõ boû qua . Caùch maø caùc ngoân ngöõ laäp trình thöôøng duøng , trong ñoù coù caû VB , laø thöïc hieän vieäc kieåm tra döïa vaøo hai nhoùm caâu leänh . Thöù nhaát laø khoái caâu leäng If … then … End . Thöù hai laø nhoùm leänh Select case . Caû hai nhoùm leänh naøy duøng caùc bieåu thöùc ñeå thay ñoåi luoàng ñieàu khieån cuûa chöông döïa treân giaù trò cuûa bieán hoaëc haøm .
Caâu leänh If… Then :
Moät bieåu thöùc If…Then chuaån trong moät öùng duïng thöôøng kieåm tra giaù trò döõ lieäu ñöa vaøo vaø neáu noù thoûa maõn ( traû veà True) thì ñoaïn maõ beân trong khoái If seõ ñöôïc xöû lyù .
Cuù Phaùp :
+ Thöïc hieän moät caùch coù ñieàu kieän caùc ñoaïn maõ ñôn giaûn :
If (ñieàu kieän ) then
[ Caùc phaùt bieåu]
End if
+ Kieåm tra nhieàu ñieàu kieän :
If (ñieàu kieän ) then
[ Caùc phaùt bieåu]
[ Else ñieàu kieän Then ]
[ Caùc phaùt bieåu]…
[ Else]
[ Caùc phaùt bieåu]
End if
Neáu baïn phaûi kieåm tra ñieàu kieän vaø sau ñoù duyeät suoát moät maûng ñeå xöû lyù thoâng tin baïn coù theå goïi moät thuû tuïc con duøng voøng laëp duyeät qua maûng naøy hoaëc baïn coù theå vieát maõ nhö sau :
If Update_Records Then
Do Until (EOF(1))
‘xöû lyù maõ
Loop
Else
Msgbox (“Khoâng coù record naøo ñöôïc caäp nhaät”)
End if
Vì vaäy khi caàn baïn coù theå troän laån baát kyø kieåu caâu leänh naøo cuûa VB vôùi khoái leänh If . . . Then.
Caâu leänh löïa choïn Select Case:
Caâu leänh Select Case laø moät caùch khaùc ñeå kieåm tra nhieàu ñieàu kieän sau ñoù thi haønh ñoaïn maõ chöông trình lieân quan ñeán ñieàu kieän . Select Case cung caáp caùc ñoaïn maõ maø coù theå quaûn lyù deã daønh hôn leänh If. Sau ñaây laø cuù phaùp :
Select Case Bieåu thöùc kieåm tra
[Case bieåu thöùc
[Caùc caâu leänh]]
[Case Else
[Caùc caâu leänh]]
End Select
Gioáng vôùi caâu leänh If . . . Then , caùc caâu leänh coù theå thöïc hieän trong khoái leänh Case coù theå laø moät khoái goàm nhieàu caâu leänh chuaån cuûa VB , coù theå chöùa nhöõng caâu leänh Select khaùc . Trong caâu leänh Select bieåu thöùc ñöôïc öôùc löôïng trong caâu leänh Select Case , sau ñoù caùc caâu leänh Case trong khoái Select … End Select seõ kieåm tra caùc giaù trò keát quaû so khôùp vôùi giaù trò maø Select Case öôùc löôïng ñöôïc . Caâu leänh Select Case seõ raát höõu duïng cho vieäc kieåm tra caùc giaù trò rôøi raïc .
Caùc haøm khaùc :
Hai haøm ñöôïc ñeà caäp trong phaàn naøy laø :
+ Choose : Choïn löïa vaø traû veà moät giaù trò töø moät danh saùch caùc ñoái soá döïa treân moät giaù trò ñöôïc chæ ñònh .
+ IIf : Traû veà moät trong hai giaù trò phuï thuoäc vaøo bieåu thöùc .
Moãi haøm cung caáp moät phöông phaùp choïn löïa duy nhaát moät giaù trò hoaëc bieåu thöùc . Haøm Choose giuùp baïn duøng moät giaù trò ñeå löïa choïn töø moät danh saùch caùc chuoåi hoaëc caùc soá . Sau ñaây laø cuù phaùp cuûa haøm Choose :
Choose ( chæ soá , choïn löïa 1[,chon löïa 2 , [,choïn löïa n]])
Haøm seõ giuùp baïn choïn moät giaù trò töø nhieàu ñieàu kieän khaùc nhau trong danh saùch khai baùo .
Haøm Iff traû veà moät trong hai bieåu thöùc phuï thuoäc vaøo giaù trò cuûa moät bieåu thöùc coù ñieàu kieän . Sau ñaây laø cuù phaùp cuûa haøm naøy :
IIf ( expr , truepart , falsepart)
Neáu expr laø true giaù trò hoaëc bieåu thöùc thöù nhaát ñöôïc traû veà ; neáu expr laø false bieåu thöùc thöù hai ñöôïc traû veà . Haøm IIf luoân luoân öôùc löôïng caû hai bieåu thöùc ôû phaàn true vaø false , maëc duø noù seõ chæ choïn traû veà moät giaù trò .
THEÁ NAØO LAØ CSDL ?
Theá naøo laø cô sôû döõ lieäu :
CSDL thaät söï laø moät heä thoáng chöùa nhieàu ñoái töôïng khaùc nhau ñöôïc söû duïng cho pheùp öùng duïng truy caäp döõ lieäu nhanh vaø coù hieäu quaû . CSDL rôi vaøo hai nhoùm phaân bieät sau :
Local database (CSDL cuïc boä) :
CSDL cuïc boä coù theå truy caäp tröïc tieáp töø VB thoâng qua kyõ thuaät Jet CSDL VB .
CSDL cuïc boä thöôøng thì coù kích thöôùc vaät lyù vaø soá löôïng döõ lieäu löu tröõ nhoû hôn nhieàu so vôùi CSDL truy caäp töø xa . Chuùng bao goàm :
+ Microsoft Access , SQL Server Server Personal Edition , Lotus Worksheets
DBASE , Paradox , ASCII , Oracle Personal .
CSDL cuïc boä thöôøng ñöôïc söû duïng cho öùng duïng moät ngöôøi duøng nhö danh baï ñòa chæ , thoâng tin caù nhaân .
Remote database (CSDL töø xa ) :
CSDL töø xa khoâng theå ñöôïc truy caäp bôûi khaû naêng truy caäp CSDL chuaån cuûa VB . CSDL töø xa laø moät kieåu CSDL yeâu caàu phaûi coù moät keát noái OBDC ( Open Database Connectivity) hoaëc moät OLE DB cho öùng duïng truy caäp noù . Caùc CSDL ODBC goàm hai loaïi chính : moät laø chaïy treân maùy ñôn vaø moät laø treân maùy chuû (server) , ñoøi hoûi khoâng gian ñóa phaûi lôùn , toác ñoä maïnh . Caùc CSDL treân maùy chuû ñöôïc söû duïng ñeå chia vuøng laøm vieäc giöõa caùc maùy client (khi öùng duïng ñöôïc thöïc thi ) vaø heä thoáng CSDL (khi caùc truy vaán CSDL ñöôïc thöïc hieän ) . ODBC cung caáp cô cheá cho pheùp öùng duïng truy caäp döõ lieäu nhanh khoâng laøm chaäm hoaït ñoäng ôû caùc maùy khaùch client . Phaàn lôùn caùc CSDL kieåu server cung caáp caùc phieân baûn ñeå chaïy treân caùc maùy ñôn . Chuùng söû duïng moät trong caùc heä thoáng CSDL nhö Oracle , Sybase , Microsoft SQL Server .
Thieát keá cô sôû döõ lieäu :
Tröôùc khi thieát keá form , ñaàu tieân baïn phaûi coù moät döõ lieäu hoaøn chænh ñeå laøm vieäc . Moät thieát keá CSDL toát phaûi theo nguyeân taéc sau :
+ Cho pheùp döõ lieäu ñöôïc löu tröõ coù hieäu quaû ñeå CSDL khoâng lôùn hôn möùc caàn thieát , caäp nhaät döõ lieäu moät caùch deã daøng , cung caáp moät thieát keá linh hoaït cho pheùp theâm vaøo nhöõng haøm môùi , nhöõng baûng vaø nhöõng döõ lieäu môùi , söû duïng truy xuaát moät caùch deã daøng vaø thu ñöôïc keát quaû moät caùch nhanh choùng .
Trình baøy caáu truùc CSDL :
Baïn phaûi bieát muïc ñích khi thieát keá caùc baûng trong cô sôû döõ lieäu . Maëc duø raát lyù töôûng khi thoûa maõn taát caû caùc muïc ñích thieát keá , nhöng ñoâi khi ñieàu naøy laø khoâng theå thöïc hieän ñöôïc , nhö baïn thaáy bao goàm :
+ Ngaên chaën vieäc löu caùc döõ lieäu ñöôïc laëp ñi laëp laïi .
+ Cung caáp khaû naêng tìm caùc maåu tin coù thöù töï moät caùch nhanh choùng .
+ Taïo coâng vieäc deã daøng baûo quaûn cô sôû döõ lieäu .
+ Taïo coâng vieäc deã daøng thöïc hieän caùc thay ñoåi leân caáu truùc CSDL .
Caùc böôùc baét ñaàu thieát keá CSDL xaûy ra trong chính quaù trình thieát keá öùng duïng Ñaàu tieân baïn phaûi ñònh nghóa caùc coâng vieäc maø öùng duïng seõ thöïc hieän trong baûng lieät keâ chöùc naêng . Khi baïn ñaõ ñònh nghóa caùc coâng vieäc ñeå thöïc hieän ñaëc taû theo chöùc naêng baïn ñaõ thöïc hieän böôùc ñaàu tieân trong tieán trình thieát keá CSDL Caùc baûng lieät keâ chöùc naêng ñoù giuùp baïn trình baøy thaønh baûng vaø döõ lieäu quan heä caàn thieát . Caùc böôùc coøn laïi nhö sau :
+ Ñònh nghóa döõ lieäu caàn thieát cho öùng duïng .
+ Saép ñaët döõ lieäu vaøo trong caùc baûng .
+ Thieát laäp moái quan heä giöõa caùc baûng .
+ Taïo caùc chæ muïc baûng caàn thieát .
+ Ñònh nghóa caùc yeâu caàu veà mieàn giaù trò cuûa döõ lieäu .
+ Ñònh nghóa caùc caâu truy vaán maø öùng duïng caàn .
TRUY CAÄP CSDL
ADO so vôùi ADO.NET
Thoâng thöôøng trong caùc öùng duïng client/server vieäc noái keát vôùi CSDL thöôøng tröïc laø ñieàu quan troïng ñeå cho pheùp nhieàu ngöôøi söû duïng cuøng luùc truy caäp tröïc tieáp tôùi döõ lieäu . Thaät khoâng may , ñoâi khi cô cheá truy caäp naøy coù theå khoâng thöïc teá bôûi caùc lyù do sau :
+ Môû moät keát noái ñeán moät CSDL thöôøng xuyeân seõ chieám nhieàu taøi nguyeân cuûa heä thoáng . Hôn nöõa , haàu heát caùc CSDL chæ coù theå xöû lyù moät soá löôïng nhoû caùc keát noái cuøng moät luùc .
+ Moät öùng duïng môû moät keát noái ñeán CSDL thì khoâng theå deã daøng bò söûa ñoåi bôûi haøng traêm ngöôøi söû duïng cuøng moät luùc .
+ Trong caùc öùng duïng vieát cho Web hoaëc Internet , haàu heát caùc thaønh phaàn ñeàu khoâng noái keát tröïc tieáp vôùi cô sôû döõ lieäu , noù chæ truy vaán döõ lieäu moät laàn roài ngaét keát noái . Trong tröôøng hôïp naøy , vieäc xöû lyù moät CSDL ñang môû thöôøng tröïc laø khoâng theå .Vôùi lyù do treân vaø nhieàu lyù do khaùc nöõa ADO.NET ñaõ ñöôïc taïo neân ñeå giaûi quyeát caùc vaán ñeà naøy vaø taïo neân söï meàm deûo hôn trong vieäc thieát keá öùng duïng döïa treân Web . Ñeå cho pheùp söï chuyeån tieáp trôn tru töø ADO leân ADO.NET . Microsoft ñaõ thieát keá vieäc laäp trình baèng ADO.NET raát gioáng vôùi ADO . Baïn chæ caàn hieåu moät soá khaùi nieäm chaáp nhaän ñeå söû duïng ADO.NET . Ñieåm khaùc nhau nhaát maø baïn phaûi chuù yù ñoù laø ADO.NET ñôn giaûn hoùa caùc phöông phaùp truy caäp tröôùc ñaây . Noù laø phöông phaùp truy caäp döõ lieäu thoáng nhaát cho caùc phöông phaùp truy caäp döõ lieäu chuaån tröôùc ñaây bao goàm truy caäp cuïc boä , maïng vaø internet .
Ñoái töôïng ACTIVE DATA OBJECT (ADO)
Môû moät CSDL :
Moät CSDL ñang hoaït ñoäng ñöôïc ñònh nghóa bôûi vieäc taïo ñoái töôïng Recorset trong ñoái töôïng Connection . Sau ñoù , baïn coù theå söû duïng phöông thöùc Open cuûa ñoái töôïng Recordset ñeå thi haønh phaùt bieåu SQL cuï theå vaø keát noái tôùi döõ lieäu .
Ví duï :
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim strcn As String
cn = New ADOBD.Connection ( )
cn.ConnectionString = "driver = (SQL Server); Server = lbm1;" & "ui = sa ; pwd = sa ; database = northwist"
cn.CursorLocation = ADODB.CursotLocationEnum.adUserClient
cn.Open ( )
cmd = new ADODB.Command ( )
Ñeå truy caäp döõ lieäu , baïn caàn taïo vaø môû moät ñoái töôïng Recordset noái keát tôùi döõ lieäu ñöôïc löu tröõ trong CSDL . Baïn coù theå truy caäp vaøo toaøn boä baûng döõ lieäu , caùc tröôøng (field) cuï theå vaø caùc record trong baûng hoaëc thieát laäp söï keát noái giöõa caùc record vaø caùc field töø nhieàu baûng . Moät caâu truy vaán (query) laø moät nhoùm döõ lieäu töø moät hoaëc nhieàu baûng trong CSDL . Caùc döõ lieäu naøy ñöôïc choïn baèng moät phaùt bieåu SQL thöôøng chöùa teân cuûa caùc coät döõ lieäu caàn loïc .
Söû duïng caùc caâu query cho pheùp baïn laøm caùc vieäc sau :
+ Lieân keát döõ lieäu töø nhieàu baûng .
+ Giôùi haïn soá löôïng caùc field hoaëc caùc record caàn choïn loïc töø baûng .
+ Söû duïng boä loïc vaø saép xeáp coù thöù töï döõ lieäu .
Truy caäp döõ lieäu :
Truy caäp döõ lieäu ñeå hieån thò leân form , baïn coù theå söû duïng ADO ñeå theâm , xoùa söûa döõ lieäu trong CSDL
Giôùi thieäu veà ADO.NET :
Caùc phöông thöùc cuûa ADO.NET laø söï thieát keá laïi cuûa caùc phöông thöùc ADO nhaèm hoã trôï cho caùc öùng duïng veà Internet . Noù söû duïng caùc phöông thöùc töông töï nhö caùc phöông thöùc truy caäp cuûa caùc öùng duïng cuïc boä , client/server hoaëc caùc öùng duïng treân Internet vaøo CSDL . Maëc duø caùc phöông thöùc cuûa ADO.NET gioáng nhö caùc phöông thöùc cuûa ADO , nhöng cuõng coù moät soá ñieåm khaùc bieät ñaùng chuù yù . ADO.NET cho pheùp baïn truy caäp vaøo caùc nguoàn taøi nguyeân nhö Microsoft SQL vaø caùc nguoàn taøi nguyeân naøo coù theå truy caäp ñöôïc thoâng qua OLE DB (nhö Oracle vaø Sybase) hoaëc XML . Söï khaùc bieät lôùn nhaát laø ADO.NET taùch xöû lyù CSDL vaø caùc thao taùc truy caäp döõ lieäu baèng caùch söû duïng DataSet vaø .NET Data Provider . Baèng caùch hoã trôï caùc caùch truy caäp naøy , caùc öùng duïng treân Client vaø Web thöïc söï ñöôïc keát noái vaøo CSDL . Ñieàu naøy cho pheùp moät soá löôïng lôùn ngöôøi söû duïng coù theå truy caäp döõ lieäu maø khoâng caàn kieåm soaùt caùc nguoàn taøi nguyeân so vôùi tröôøng hôïp khi moïi ngöôøi ñöôïc tröïc tieáp noái keát . DataSet laø moät trong hai thaønh phaàn caáu truùc rôøi raïc cuûa ADO.NET. Moät Dataset chöùa : DataTable , Relations , Constraints cho pheùp noù sao laëp nguyeân caû CSDL , hoaëc löïa choïn caùc phaàn CSDL theo kieåu taùch rôøi , duøng XML laøm daïng thöùc oån ñònh cô sôû cuûa noù . Hình sau ñaây neâu khaùi quaùt caùc chöông trình cung caáp döõ lieäu .NET trong moät öùng duïng ADO.NET
Thaønh phaàn thöù hai cuûa ADO.NET laø NET data provider , thaønh phaàn naøy ñöôïc thieát keá ñeå hoã trôï caùc thao taùc xöû lyù döõ lieäu nhanh vaø hieäu quaû hôn .Caùc ñoái töôïng cuûa Data provider :
+ Ñoái töôïng Connection cung caáp khaû naêng noái vôùi cô sôû döõ lieäu .
+ Ñoái töôïng Command cho pheùp thi haønh caùc leänh döïa treân nguoàn döõ lieäu vaø truy luïc moät DataReader hay Dataset , hoaëc thi haønh moät leänh Insert ,Update hay Delete döïa treân nguoàn döõ lieäu .
+ Ñoái töôïng DataReader cung caáp moät luoàn döõ lieäu hieäu quaû boä nhôù (connection connect ) , chæ tieán tôùi , chæ ñoïc , töø cô sôû döõ lieäu sang öùng duïng .
+ Ñoái töôïng DataAdapter cung caáp moät caàu noái giöõa moät Dataset vaø cô sôû döõ lieäu . DataAdapter duøng caùc ñoái töôïng leänh ñeå thi haønh caùc leänh Select , Insert , Update vaø Delete döïa treân cô sôû döõ lieäu vaø traû veà moïi döõ lieäu ñöôïc yeâu caàu vaøo , hoaëc hoøa giaûi döõ lieäu töø moät Dataset .
.NET Data Provider
Connection
Transaction
Command
Parameter
DataReader
DataAdapter
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
DataSet
Laøm vieäc vôùi DataSet :
Coù theå duøng Dataset