You are on page 1of 188

CHUYN V 1 NNLT VISUAL BASIC.

NET
Mc tiu
- Vn dng b cng c lp trnh Visual Basic.NET xy dng ng dng (t n gin n phc tp). - C kh nng tm hiu su hn cc k thut lp trnh Visual Basic.NET nng cao (h thng, mng).

Cn b ph trch Lm Hoi Bo (lhbao@cit.ctu.edu.vn)


1

CHUYN V 1 NNLT VISUAL BASIC.NET


Ni dung ch yu
Gii thiu v .NET Framework. Giao din ngi dng. Cc kiu d liu ca Visual Basic.NET. Lp trnh hng i tng. Truy cp c s d liu vi ADO.NET. Phn phi ng dng.
2

CHUYN V 1 NNLT VISUAL BASIC.NET


Kin thc lin quan
K nng s dng my tnh (Windows), Lp trnh cn bn, c s d liu.
K nng s dng my tnh Lp trnh cn bn C s d liu S dng HH Windows. C c k nng lp trnh l mt li th. Cu lnh truy vn d liu
3

CHUYN V 1 NNLT VISUAL BASIC.NET


- Developing Windows-Based Applications

Ti liu tham kho

with Visual Basic .NET and Visual C Sharp .NET; Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond; 2002. - Programming Visual Basic .NET; Dave Grundgeiger; Publisher: O'Reilly, First Edition January; 2002. - Programming and Problem Solving with Visual Basic .NET; Nell Dale, Michael McMillan, Chip Weems and Mark Headington; Jones and Bartlett Publishers; 2003. 4

Chng 1: Gii thiu v .Net Framework


.NET Framework & Common Language Runtime. Ngn ng Visual Basic.Net Khai bo lp To i tng t lp

Bi 1: Gii thiu v .NET & VISUAL BASIC.NET


Khi nim v cc thnh phn ca .Net Framework. Cu trc 1 ng dng .NET Gii thiu v Visual Basic.NET Chng trnh Visual Basic.Net u tin.

.NET FRAMEWORK
L mt mi trng an ton cho vic qun l vn pht trin v thc thi ng dng. Gm 2 phn: - Common Language Runtime (CLR): qun l vic thc thi m lnh. - Th vin lp .NET Framework: tp hp cc kiu ca CLR.
7

CC THNH PHN CA .NET FRAMEWORK

NGN NG & .NET FRAMEWORK


Tng thch gia cc ngn ng vi nhau (do CLR).
Microsoft App VB.NET (C#) Intermediate (VB.NET, Language C#) compiler (MSIL hay IL)

CLR c & thc thi


9

Common Language Specification (CLS)

CU TRC CA 1 NG DNG .NET


Assembly: tp hp m lnh, ti nguyn v d liu. Assembly manifest: cha ng thng tin v nhng g c m t trong assembly: - nh danh. - Danh sch cc kiu - Danh sch cc assemblies khc. - Danh sch quyn truy cp
10

CU TRC ASSEMBLY

11

VISUAL BASIC.NET
Mt phn ca Visual Studio.NET Thun hng i tng. Ngn ng duy nht trong VB.NET h tr rng buc tr. Ngn ng duy nht trong VB.NET h tr ch dch nn. Khng phn bit ch hoa v ch thng.
12

NG DNG .NET U TIN


Dch: vbc <Tn tp tin> Sau khi dch xong, ta nhn c tp tin thc thi (exe). Thc hin tp tin ny. TD: Tp tin HelloWorld.vb:
Public Module Hello Public Sub Main() System.Console.WriteLine("hello world") End Sub End Module

Dch tp tin: vbc HelloWorld.vb Thc thi tp tin HelloWorld.exe


13

Bi 2: Ngn ng lp trnh VISUAL BASIC.NET

Kiu d liu, bin & hng trong VB.NET. Cu lnh n trong VB.NET Cc lnh c cu trc ca VB.NET

14

KIU D LIU & NH DANH


Kiu gi tr (cu trc): Boolean, Char, Byte, Date, Decimal, Double, Integer, Long, Short, Single, Structure. Kiu tham chiu (lp): Object, String. nh danh (danh biu): l tn dng t cho bin, hng, kiu, lp, phng thc theo quy tc: - Bt u l 1 k t t A-Z. - Theo sau l cc k t, hoc k s (0-9) hay du gch di. - Tn c di ti a l 40. - Khng phn bit ch hoa v ch thng. TD tn: TH_K30, Dt_k31
15

BIN (VARIABLE)
L i lng dng cha d liu trong qu trnh tnh ton. C php khai bo bin:

Dim|Private|Public|Friend|Prot ected _
<Tn bin> As <Kiu> [= <Biu thc>]
16

BIN (VARIABLE)
Bin cc b: l bin c khai bo trong mt khi lnh (Dim)
TD: Tm gi tr nghch o ca x If x <> 0 Then Dim rec As Integer rec = 1/x End If MsgBox CStr(rec)
17

BIN (VARIABLE)
Bin cp module: l bin c khai bo trong phn khai bo ton cc ca mt module (Public, Friend, Private). Private: l bin ch c hiu lc trong module (mc nh). Friend: l bin ch c hiu lc trong d n . Public: bin c hiu lc khng ch trong d n n c khai bo m cn trong cc d n khc c tham chiu n d n ny.
18

BIN (VARIABLE)
Gi s Project1, ta c Module sau: Public Module Module1 Public iModulePublic As Integer Friend iModuleFriend As Integer End Module Nu Project2 tham chiu n Project1, ta vit:
Project1.Module1.iModulePublic = 100

Nhng Li "not accessible" khi:


Project1.Module1.iModuleFriend = 100
19

TH D V KHAI BO BIN
Dim x As Integer

Khi mun khai bo nhiu bin cng kiu, s dng du phy (,) phn cch:
Dim x As Long, i, j, k As Integer, _ s As String

Va khai bo va khi to gi tr:


Dim x As Integer = 5 Dim x As Integer = 6, _ y As Integer = 9
20

HNG (CONSTANT)
L i lng c gi tr khng i trong qu trnh tnh ton.

Private|Public|Friend|Protected Const _ <Tn hng> [As <Kiu>]= <Biu thc>


TD:
Public Const Pi = 3.14 Private Const g As Single = 9.8
21

BIU THC
Cc php ton s hc (+, -, *, /, Mod, \). Cc php ton quan h: And, Not, Or. Cc php ton so snh: =, >=, <=, <, >, <>. Ngoi ra, ta c th s dng cp du ngoc n tng u tin.
22

CHUYN I KIU
Ty chn Option Strict: xc nh cch thc trnh bin dch xc nh s tng thch kiu trong biu thc (On: BT phi tng thch kiu, Off: VB t ng chuyn i kiu). TD: Dim A as Long=6

Dim b As Integer=A s c li xut hin nu t Option Strict On


Mt s hm chuyn i kiu: CBool, CChar, CDate, CDbl, CDec, CInt, CLng, CObj, CSng, CStr.
23

CU LNH OPTION
Tc ng n qu trnh thc thi ca trnh bin dch. Option Compare [Binary | Text]: cch thc so snh chui. Option Explicit [On | Off]: xc nh cc bin s dng bt buc phi khai bo hay khng? Option Strict [On | Off]: t ng chuyn i kiu trong biu thc.
24

CU LNH GN
C php: <Tn bin> = <Biu thc> TD: Tnh din tch hnh trn bit bn knh l 5. Imports System Public Module Hello Public Sub Main( ) Const Pi = 3.14 Dim R As Single = 5, S As Single S = Pi*R*R Gn tr tnh din tch Console.WriteLine("Dien tich " & _ CStr(S)) End Sub End Module
25

CU LNH IF
If expression Then End If

statements

If expression Then Else End If

statements statements

If expression Then

statements ElseIf expression Then statements ElseIf expression Then statements


[Else End If

statements]

C 3 dng chnh: - If n gin. - If c phn Else - If v ElseIf nhiu ln.


26

TH D V IF
If (TheColorYouLike = Color.Red) Then ElseIf (TheColorYouLike = Color.Green) Then ElseIf (TheColorYouLike = Color.Blue) Then
System.Console.WriteLine ("You are a brave person") System.Console.WriteLine("You are a lucky person) System.Console.WriteLine("You are a hopeful person)

ElseIf (TheColorYouLike = Color.Magenta) Then Else


System.Console.WriteLine("You are a sad person) System.Console.WriteLine("You are an average person)

End If
27

CU LNH SELECT CASE


Select Case <biu thc kim tra> Case <Danh sch kt qu biu thc 1> [Khi lnh 1] Case <Danh sch kt qu biu thc 2> [Khi lnh 2] [Case Else [Khi lnh n]] End Select
T kha Is: So snh <biu thc kim tra> vi 1 gi tr T kha To: Xc lp min gi tr ca <biu thc 28 kim tra>

TH D SELECT CASE
Select Case Tuoi Case Is <18 System.Console.WriteLine(Vi thanh nien) Case 18 To 30 System.Console.WriteLine(Ban da truong thanh, lo lap than di) Case 31 To 60 System.Console.WriteLine(Ban dang o lua tuoi trung nien) Case Else System.Console.WriteLine(Ban da lon tuoi, nghi huu duoc roi!) End Select Lu : Trong th d trn, khng th vit Case Tuoi<18

29

VNG LP DOLOOP
Do While <Expression> <Statements> Loop Thc thi Staments trong khi Expression ng
TD: Tm USLN ca 2 s a & b
Do While (a Mod b <>0) r = a Mod b a=b b=r Loop UCLN = b

Do Until <Expression> <Statements> Loop Thc thi Staments cho n khi Expression ng th dng li
TD: Tm USLN ca 2 s a & b
Do Until (a Mod b=0) r = a Mod b a =b b= r Loop UCLN = b
30

VNG LP FOR
Lp xc nh chnh xc s ln lp.
For variable = expression1 To expression2 [Step expression ]

Statements Next [ variable_list ]

TD: Tnh n!

Dim i As Integer, K As Long = 1 For i = 1 To n K=K*i Next


31

VNG LP FOR EACH


Lp qua mt tp hp cc gi tr.
For Each variable In expression

Statements Next [ variable ]

TD: Dng For Each i qua ton b cc phn t ca 1 mng. Dim a( ) As Integer = {1, 2, 3, 4, 5} Dim b As Integer For Each b In a System.Console.WriteLine(b) Next

32

Bi 3: Th vin lp c s .NET

- M t v th vin lp c s .NET. - Thit lp mt tham chiu n khng gian tn. - To mt th hin ca 1 lp ca .NET Framework hay ca1 kiu gi tr.

33

KHNG GIAN TN (NAMESPACE)


Cc th vin lp c t chc trong khng gian tn; y l mt nhm cc lp c lin quan vi nhau. TD: System.Windows.Forms l kgt cha cc lp to nn ca s v cc thnh phn trn ca s ca trnh ng dng. Kgt ca .NET Framework c t chc phn cp vi gc l kgt System. Mt s kgt trong .NET Framework: System,

System.Collections, System.ComponentModel, System.Data, System.Drawing, System.IO, System.Math, System.Reflection, System.Security, System.Threading, System.Windows.Forms
34

KHAI BO BIN KIU THAM CHIU


Gm 2 bc: khai bo v khi to i tng TD: Khai bo bin i tng thuc lp Form trong System.Windows.Forms Dim f As System.Windows.Forms.Form Set f = New System.Windows.Forms.Form()

35

CU LNH IMPORT
Dng tham chiu n namespace no . t u module chng trnh. Lm vit gn trong vic truy xut n 1 lp ca namespace. TD: Gi s u module no ta vit: Imports System.Windows.Forms ta ch cn khai bo bin i tng Form trong module Dim f As Form f = New Form()
36

Bi 4: LP
Ni dung chnh: To 1 lp mi. To mt th hin (i tng) ca 1 lp.

37

KHI NIM LP
Nhng thuc tnh v hnh ng chung ca cc thc th c nhm li to nn 1 n v duy nht l lp. TD: Lp Con ngi c cc thuc tnh v hnh ng sau: - Tn - Chiu cao - Mu tc. - Ni nng - Vit . Nhng thuc tnh v hnh ng chung gi l thnh vin (member) 38

KHI NIM I TNG


Mt i tng l mt trng hp c th ca mt lp. TD: i tng 1 con ngi thc t ca lp Con ngi: - Tn: an T - Tui: 29 - Trng lng: 46 kg Hnh ng: - i - Ni - Suy ngh
39

TO MT LP MI
S dng t kha Class Class <Tn lp> <Cc thnh vin ca lp> End Class TD: Khai bo lp Person Class Person Public Name As String Public Age As Integer Public Weight As Single End Class
40

TO I TNG T LP
Vic to 1 i tng chnh l khai bo v khi to bin i tng t lp. TD: To i tng p thuc lp Person Dim p As Person p = New Person()

41

PHNG THC (METHOD)


Cc hnh ng ca lp c th hin qua phng thc (chng trnh con). Trong VB.NET, phng thc c 2 loi: hm (Function) v th tc (Sub). Khai bo hm: [Public | Private | Friend | Protect] Function _ <Tn hm>(<Khai bo cc tham s>) _ As <Kiu tr v> <Cc khai bo v cu lnh nh ngha hm> End Function <Khai bo cc tham s>: ging nh khai bo bin. Li gi hm thc thi l 1 biu thc: <Tn hm>(Danh sch tham s thc t)
42

PHNG THC (METHOD)


Khai bo th tc: [Public | Private | Friend | Protect] Sub _ <Tn th tc> (<Khai bo cc tham s>) <Cc khai bo v cu lnh nh ngha hm> End Sub Gi thc thi th tc <Tn th tc> (<Danh sch tham s thc t>) TD: Public Sub MySub() MessageBox.Show(Thi du ve Sub") End Sub Function Add(ByVal first As Integer, ByVal second As _ Integer) As Integer Add = first + second End Function

43

TRUYN THAM S CHO PHNG THC


2 cch truyn tham s: Truyn theo gi tr: mc nh hay t kha ByVal. Truyn theo a ch: t kha ByRef.

44

TH D TRUYN THAM S
Public Sub Demo1() Dim x, y As Integer x = 15 y = 20 ' Gi phng thc Demo2 Demo2(x, y) ' x=? y= ? MessageBox.Show("X = " & x.ToString & "Y = " & _ y.ToString) End Sub Public Sub Demo2(ByVal p1 As Integer, ByRef p2 As Integer) p1 = p1 + p2 p2 = p2 + p1 End Sub
45

PHNG THC XY DNG


L phng thc c gi thc hin u tin mi khi 1 i tng ca 1 lp c to ra. Trong VB.NET, phng thc xy dng lun l Sub New() TD:

Class Person Public Name As String Public Age As Integer Public Weight As Single Public Sub New() Phng thc xy dng Name = Age = 0 Weight = 0 End Sub End Class

46

PHNG THC HY
L phng thc c gi thc hin cui cng khi i tng b thu hi. Phng thc ny c nhim v gii phng ti nguyn c dng cho i tng. Trong VB.NET, phng thc ny phi l Overrides Sub Finalize()

TD:
Class Person Protected Overrides Sub Finalize() Thu hi cc thuc tnh Name = End Sub End Class

47

Chng 2: Giao din ngi dng (User Interface)


To giao din ngi dng. Lp trnh hng s kin (Event Programming). S dng ca s (biu mu, Form). S dng cc iu khin (Controls) khc thit k giao din.

48

Bi 1: Lp trnh s kin (Event Programming)

Cc tp tin ca 1 ng dng VB.NET. S kin & lp trnh hng s kin

49

CC TP TIN CA 1 NG DNG WINDOWS FORM


ng dng thit k & lp trnh c qun l trong VB.NET bng Solution. 1 Solution c th cha nhiu d n (Project). Cc tp tin khi to 1 ng dng VB.NET: *.sln *.vb *.resx *.vbproj Tp tin Solution (vn bn) Tp tin cha nh ngha v form & m lnh bn trong Tp tin ti nguyn Tp tin d n Cc tp tin khc
50

TO NG DNG WINDOWS FORM

51

52

53

LP TRNH S KIN (EVENT PROGRAMMING)


S kin (event): l hnh ng ca ngi dng tc ng vo ng dng ang thc thi. TD: Nhn phm bt k trn bn phm. Nhp chut. Kh nng p ng li s kin ca ng dng ph thuc ngi lp trnh. Ngi lp trnh phi vit on m lnh, on lnh ny s thc thi khi s kin tng ng xy ra. TD: My tnh Calculator, trnh v Paint.
54

M lnh cho s kin Click ca Ghi a

M lnh cho s kin Click ca In giy

Vn g xy ra nu: - Ngi dng khng tc ng g vo ng dng? - Ngi dng nhp d liu vo cc nhp? - Ngi dng nhp chn Ghi a? - Ngi dng nhp chn In giy?
55

Bi 2: Ca s (Biu mu, Form)


Khi nim biu mu. Thm biu mu vo ng dng. Thit lp startup form & v tr form lc startup. Cc thuc tnh, phng thc, s kin ca biu mu.
56

CA S (BIU MU, FORM)


L ca s c lp trnh hin th d liu & nhn thng tin pha ngi dng. Thm biu mu vo d n (khi thit k): - Trn mc menu Project, chn Add Windows Form. Hp thoi Add New Item bt ra. - Chn Windows Form, nhp Open. Thm biu mu bng m lnh: Khai bo v khi to i tng biu mu. TD: Dim f As DialogForm f = New DialogForm()
57

BIU MU THA K (INHERITED FORM)


L biu mu c to ra v k tha cc thuc tnh, phng thc, s kin ca biu mu cha. Thm biu mu tha k vo ng dng (bng m lnh): - Thm 1 biu mu vo ng dng. - Cho biu mu ny tha k 1 biu mu cha no bng cch s dng t kha Inherits trong khai bo lp. TD: To biu mu myForm tha k t biu mu MainForm: Public Class myForm Inherits MainForm Ci t ca lp myForm End Class
58

BIU MU - THUC TNH


Thuc tnh: c tnh to nn v b ngoi ca iu khin. - BackColor: mu nn. - ForeColor: mu ch. - Text: Tiu biu mu. - Font: Font ch ca biu mu. .. Ta c th thit lp cc thuc tnh ny bng m lnh hay nh vo ca s thuc tnh. TD: Me.BackColor = System.Drawing.Color.Red
59

THIT LP THUC TNH BNG CA S THUC TNH

60

BIU MU PHNG THC


Dialog.

Form.Show : th hin form ln mn hnh. Form.ShowDialog : th hin form ln mn hnh hnh dng Form.Activate : form c kch hot (active) Form.Hide : n form i. Form.Close : ng li form v gii phng ti nguyn.

TD: Dim myForm As New DialogForm() myForm.Show() Th hin Form trng thi bnh thng myForm.ShowDialog() Th hin Form dng Dialog myForm.Activate() myForm.Hide() myForm.Close()
61

BIU MU - S KIN (EVENT)


To on m x l s kin trong VB.NET:

62

BIU MU - S KIN (EVENT)


ln mn hnh. Activated : Xy ra khi Form c kch hot. Deactivated: Xy ra khi Form mt kch hot. VisibleChanged : Xy ra khi Form c thay i trng thi (n/hin). Closing: Xy ra khi Form ang trong qu trnh ng li. Closed : Xy ra sau s kin Closing. Lu : - S kin Load c s dng khi to gi tr ca cc thnh phn trong Form. - S kin Closing & Closed thng c s dng thu hi ti nguyn c cp pht cho Form.
63

Load : Xy ra khi th hin u tin ca Form c Load

TH D X L S KIN CA FORM
Gi s ta mun ngn thao tc ng Form ca ngi dng: S kin Form_Closing(), ta thit lp: CancelEventArgs.Cancel = True
Private Sub myForm_Closing(ByVal sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) _ Handles MyBase.Closing e.Cancel = True End Sub

64

Bi 3: Cc iu khin trong VB.NET


Khi nim iu khin. Mt s thao tc vi cc iu khin khi thit k ng dng. Mt s iu khin thng s dng.

65

IU KHIN (CONTROL)
iu khin: Cc thnh phn c sn to giao din tng tc vi ngi dng. Mt s iu khin: Label, TextBox, Button, ListBox, ComboBox, OptionButton, CheckBox, PictureBox

66

IU KHIN NHN - LABEL


Dng hin th d liu cho ngi dng. Thuc tnh: - Name: Tn ca Label - Text: Chui hin th trn Label. - BorderStyle: Kiu vin ca iu khin Label (None, FixedSingle, Fixed3D) - Image: hnh nh ca Label TD: Thay i Text ca Label c Name l lblTest1 thnh None: lblTest1.Text = None
67

IU KHIN NHP LIU - TEXT BOX


Dng nhn/hin th d liu v pha ngi dng. Thuc tnh: - Name: Tn ca nhp liu TextBox. - Text: Chui hin th trn nhp liu TextBox. - Multiline: TextBox c nhn nhiu dng vn bn hay khng? (Mc nh gi tr ny l False). - CharacterChasing: t ng chuyn i d liu nhp ca TextBox thnh dng tng ng (Normal, Upper, Lower). - PasswordChar: K t hin th thay th khi nhp. - Font: Font ch ca TextBox
68

IU KHIN NHP LIU - TEXT BOX


S kin:

- KeyPress: Xy ra khi ngi dng nhn phm c m Ascii t bn phm. kim chng k t ngi dng nhp t bn phm ngi ta s dng 1 s hm Char.IsDigit, Char.IsLetter, Char.IsLetterOrDigit, Char.IsPunctuation , Char.IsLower ,

Char.IsUpper.

TD: S kin KeyPress Private Sub TextBox1_KeyPress (ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles _ TextBox1.KeyPress

If Char.IsDigit(e.KeyChar) = True Then MessageBox.Show("You pressed a number key") End If End Sub
69

IU KHIN NHP LIU - TEXT BOX


S kin Validating: - Xy ra trc khi TextBox mt kch hot, dng kim tra d liu nhp c hp l hay khng? - Ch thc hin khi ngi lp trnh thit lp thuc tnh CausesValidation ca Text Box l True.
TD:
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _ System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating

' Kim tra gi tr ca TextBox If TextBox1.Text = "" Then ' Bt buc TextBox phi nhp li, TextBox phi c kch hot e.Cancel = True End If End Sub 70

IU KHIN NT NHN BUTTON


Dng xc nhn 1 hnh ng hay thao tc ca ngi dng. Thuc tnh: - Name: Tn ca Button. - Text: Chui hin th trn Button. - Image: Hnh nh trn Button. - FlatStyle: Hnh dng ca Button (Flat, Popup, Standard, and System.) - Font: Xc lp Font ch cho Button.

71

IU KHIN NT NHN BUTTON


S kin - Click: Xy ra khi ngi dng nhp chut vo Button. TD: Tnh N! vi N nhp t bn phm.

S kin Button_Click()
Private Sub btnTinh_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnTinh.Click Dim N, i As Integer, K As Long = 1 N = CInt(txtN.Text) For i = 1 To N K=K*i Next lblKQ.Text = CStr(K) End Sub
72

IU KHIN DANH SCH LA CHN - LISTBOXES


S dng hin th mt danh sch cho ngi dng la chn. WinForms h tr 2 loi list box: - ListBox - CheckedListBox S khc bit chnh l nhng phn t ca CheckedListBox c hin th c du check trc .
73

IU KHIN DANH SCH LA CHN - LISTBOX


Thuc tnh - Items: tp cc phn t trong ListBox. - SelectedIndex: xc nh ch s ca mc ang hin thi c chn trong ListBox, phn t u tin c ch s 0. - SelectedItems: tp cc mc ang c chn. - SelectedValue: gi tr ca mc ang c chn. - Text: chui trn mc c chn. Phng thc - ClearSelected: xa ht cc la chn trn ListBox. - FindString: tm mc u tin trong danh sch m phn t c gi tr bt u l mt chui cho trc.
74

IU KHIN DANH SCH LA CHN - LISTBOX


S kin - SelectedIndexChanged: xy ra khi gi tr ca thuc tnh SelectedIndex thay i. - SelectedValueChanged: xy ra khi gi tr ca thuc tnh SelectedValue thay i. TD: S dng thuc tnh i tng Items thm cc mc vo ListBox. X l s kin Load ca Form vit m lnh x l.

75

IU KHIN DANH SCH LA CHN - LISTBOX


Private Sub myForm_Load(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Me.lstTen.Items.Add("Nguyn Vn Cng") Me.lstTen.Items.Add("Lm Quang H") Me.lstTen.Items.Add("Trn Trung Trc") Me.lstTen.Items.Add("L Quang Tri") End Sub Ngoi ra thuc tnh i tng Items cn c mt s thuc tnh & phng thc khc: Count, Clear, Insert, RemoveAt, Item
76

IU KHIN DANH SCH LA CHN - CHECKEDLISTBOX


CheckedListBox cng h tr cc thuc tnh, phng thc, s kin ging nh ListBox; bn cnh iu khin ny cn c nhng c im ring: Thuc tnh - CheckedIndies: tp cc ch s ca cc phn t c la chn (checked). - CheckedItems: tp hp cc phn t c chn (checked). TD: Cho hnh bn, ta c: - CheckedIndies={1,2} - CheckedItems={Lm Quang H, Trn Trung Trc}
77

IU KHIN DANH SCH LA CHN - CHECKEDLISTBOX


Phng thc - SetItemChecked: thit lp mc c ch s xc nh c chn (checked). - SetItemCheckState: xc lp trng thi checked ca 1 mc xc nh. TD: S dng phng thc SetItemCheckState S kin Click ca Button Trng thi
Me.lstNuoc.SetItemCheckState(1, _ CheckState.Checked) Me.lstNuoc.SetItemCheckState(2, _ CheckState.Indeterminate) Me.lstNuoc.SetItemCheckState(3, _ CheckState.Unchecked)
78

IU KHIN HP DANH SCH - COMBOBOX


L iu khin kt hp gia 2 iu khin TextBox & ListBox. iu khin ny h tr cc tnh nng nh ListBox; tuy nhin chng vn c phn m rng so vi ListBox. Thuc tnh - DropDownStyle: kiu ca ComboBox, gm c Simple, DropDownList & DropDown.

Simple

DropDown

DropDownList

79

IU KHIN LISTVIEW
Cho php hin th mt danh sch cc phn t dng thc c bit. ListView c 4 kiu sau: - Text only: mc nh. - Text with small icon. - Text with large icon. - Detail view: cc phn t hin th nhiu ct. ListView k tha cc tnh nng ca CheckedListBox. Thuc tnh - CheckBoxes: mi phn t trong ds c 1 checkbox ng trc. - Items: tp cc phn t trong ds. - MultiSelect: ds c nhiu la chn khng?
80

LISTVIEW - TH D

81

LISTVIEW - TH D
Dim lsvTen As New ListView lsvTen.Width = 300 lsvTen.Height = 200 ' Hin th chi tit lsvTen.View = View.Details ' Sa gi tr ca Text lsvTen.LabelEdit = True lsvTen.FullRowSelect = True ' Hin th li lsvTen.GridLines = True Dim item1 As New ListViewItem("Nguyn Vn An", 0) item1.SubItems.Add("1") item1.SubItems.Add("2") item1.SubItems.Add("3")
82

Dim item2 As New ListViewItem("L Ch Cng", 1) item2.SubItems.Add("4") item2.SubItems.Add("5") item2.SubItems.Add("6") Dim item3 As New ListViewItem("Hunh Vn Ho", 0) item3.SubItems.Add("7") item3.SubItems.Add("8") item3.SubItems.Add("9")

' To cc ct cho cc mc

lsvTen.Columns.Add("H tn", -2, HorizontalAlignment.Left) lsvTen.Columns.Add("Ton", -2, HorizontalAlignment.Left) lsvTen.Columns.Add("L", -2, HorizontalAlignment.Left) lsvTen.Columns.Add("Ha", -2, HorizontalAlignment.Center)

Thm cc mc vo ListView

lsvTen.Items.AddRange(New ListViewItem() _ {item1, item2, item3})


83

IU KHIN TREEVIEW
Cho php hin th d liu dng phn cp. TreeView h tr hu ht cc thuc tnh, phng thc & s kin ca ListView. Thuc tnh
- ImageList: ds cc nh c hin th mi nt. - Nodes: ds cc nt. - SeletedNode: nt hin thi c la chn.

Phng thc
- GetNodeAt: truy xut 1 nt v tr xc nh trong TreeView. - GetNodeCount: tng s nt.

S kin

- BeforeSelect, AfterSelect: xy ra trc/sau khi 1 nt c chn. - BeforeCollapse, AfterCollapse: xy ra trc/sau khi thu hp 1 nt. - BeforeExpand, AfterExpand: xy ra trc/sau khi 1 m rng 1 nt. 84

IU KHIN TREEVIEW - TH D
Hin th 10 khch hng, mi khch hng c 5 n t hng. Thit k cc lp Khch hng & t hng. To TreeView nh hnh
85

Public Class Customer Public CustomerName As String Public CustomerOrder As _ ArrayList Public Sub New(ByVal Name _ As String) CustomerName = Name CustomerOrder = New _ ArrayList(0) End Sub End Class

Public Class Orders Public OrderID As String Public Sub New(ByVal _ id As String) OrderID = id End Sub End Class

S kin Load ca Form c x l


Dim customerArray As New ArrayList ' Thm khch hng Dim x As Integer For x = 0 To 9 customerArray.Add(New Customer("Customer " + x.ToString())) Next x
86

Thm n t hng Dim customer1 As Customer For Each customer1 In customerArray Dim y As Integer For y = 0 To 4 customer1.CustomerOrder.Add(New Orders("Order" + y.ToString())) Next y Next customer1 ' Xa TreeView TreeView1.Nodes.Clear() ' To cc nt cha l cc khch hng For Each customer1 In customerArray TreeView1.Nodes.Add(New TreeNode(customer1.CustomerName)) ' Cc nt con l cc n t hng Dim order1 As Orders For Each order1 In customer1.CustomerOrder TreeView1.Nodes(customerArray.IndexOf(customer1)).Nodes.Add( _ New TreeNode(customer1.CustomerName + ". + order1.OrderID)) Next order1 Next customer1
87

IU KHIN CHECKBOX
c s dng nhn thng tin dng Yes/No. Thuc tnh - Checked: Xc nh iu khin ang trng thi no (True/False). S kin - CheckedChanged: Xy ra khi gi tr ca thuc tnh Checked b thay i.

Private Sub chkDam_CheckedChanged(ByVal sender _ As System.Object, ByVal e As System.EventArgs) _ Handles chkDam.CheckedChanged If Me.chkDam.Checked Then Me.txtTen.Font = New Font("Arial", 9.0!, _ System.Drawing.FontStyle.Bold) Else Me.txtTen.Font = New Font("Arial", 9.0!, _ System.Drawing.FontStyle.Regular) End If End Sub 88

IU KHIN RADIO BUTTON


- L iu khin cho php nhn d liu Yes/No, nhng cc radio button cng 1 nhm th khng th chn ng thi. - Cc thuc tnh, phng thc, s kin tng t CheckBox.

89

IU KHIN NHM - GROUPBOX


L iu khin c dng nhm cc iu khin khc. Thuc tnh: - Text: Chui trn tiu ca GroupBox. TD (hnh bn)

90

IU KHIN PICTURE BOX


c s dng hin th hnh nh. Thuc tnh - Image: Xc nh hnh nh cn hin th. - SizeMode: xc nh cch thc nh c hin th (AutoSize, CenterImage, Normal, StretchImage) S kin - SizeModeChange: xy ra khi thuc tnh SizeMode thay i gi tr.

91

IU KHIN IMAGELIST
Dng lu cc hnh nh v cho php chng hin th cc iu khin khc nhau. Thuc tnh - Images: tp hp cc nh ca ImageList. - ImageSize: kch thc ca cc nh c trong ImageList. Phng thc - Draw: v mt nh xc nh.
92

IU KHIN TIMER
L iu khin p ng li s tri i ca thi gian. Thuc tnh - Enabled: cho php iu khin thi gian thc thi. - Interval: Khong thi gian gia 2 s kin. Phng thc - Start: khi ng iu khin thi gian. - Stop: ngng iu khin thi gian. S kin - Tick: Xy ra sau 1 khong thi gian c ch trong Interval
93

IU KHIN TIMER - Th d
Thit k ng dng cho php hin th ng h s.

Thuc tnh: X l s kin Tick

Enable = True Interval=1000

Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Me.lblTG.Text = CStr(Now) Now: hm ly thi gian End Sub
94

Bi 4: Cc iu khin khc

Hp thoi (Dialog). Hp thng ip (MessageBox)

95

HP THOI (DIALOGBOX)
L 1 ca s tm cha cc iu khin khc tng tc gia ng dng v ngi s dng. c im - Kch thc ca hp thoi khng th thay i. - Hp thoi khng cha menu. Cc loi hp thoi - Modal: hin th thng ip & ngi dng khng th chuyn i sang cc ca s khc khi hp thoi cn tn ti. - Modaless: ta c th chuyn i sang cc ca s khc d dng.
96

OPEN FILE DIALOG


y l hp thoi m tp tin.

97

FONT DIALOG
y l hp thoi cho php chn Font.

98

COLOR DIALOG
y l hp thoi cho php chn mu t bng mu ca h thng.

99

HP THNG IP - MESSAGEBOX
Dng hin th thng bo. Cch s dng: MessageBox.Show([Thng ip]) Ta c th s dng Show nh 1 hm, kt qu tr v (DialogResult) ca hm c th c cc gi tr: Abort, Cancel, Inorge, No, None, OK, Retry, Yes. MessageBox.Show(s1 As String, s2 As String, _ btns As MessageBoxButton, icns As _ MessageBoxIcon) As DialogResult s1: Thng ip cn hin th. s2: Tiu ca hp thng ip.
100

HP THNG IP - MESSAGEBOX
MessageBoxButton: AbortRetryInorge, OK, OKCancel, RetryCancel, YesNo, YesNoCancel. MesageBoxIcon: Asterisk, Error, Exclamation, Hand, Information, None, Question, Stop, Warning. TD: MessageBox.Show("Cho mng bn lm quen vi hp _
thng ip", "Thng bo", MessageBoxButtons.YesNoCancel, _ MessageBoxIcon.Information)

101

Bi 5: Menu
To menu vi MainMenu. To menu ng cnh vi ContextMenu. X l s kin ca cc mc ca menu To menu bng m lnh

102

MENU - KHI NIM


Menu l mt loi iu khin trong ngi dng c th la chn cc mc thc thi t mt danh sch cho trc. Phn loi - Menu th xung (Drop-Down Menu): l dng menu thng dng nht. - Menu bt ra (Pop-Up Menu, ContextMenu): thng hin th khi ta n nt phi chut.

103

DROPDOWN MENU
To menu nh vo iu khin MainMenu. Cc bc to menu: - To menu mi v menu bar.

- Thm cc mc menu con vo menu c. - Sa i li cc thuc tnh ca menu v cc mc menu. - X l s kin Click ca cc mc menu con.

104

DROPDOWN MENU - TH D

105

IU KHIN MAIN MENU


MainMenu: hin th 1 menu khi ng dng c thc thi. Cc menu con ca MainMenu gl Menu. MenuItem: mc c th ca 1 Menu xc nh. Thuc tnh - IsParent: True nu mc menu ny l cha ca cc mc menu con no . - MenuItems: tp hp cc mc menu con. Phng thc - MergeMenu: ghp cc mc menu con ca 1 menu xc nh vo menu hin hnh.
106

MENUITEM
Thuc tnh - Checked: l True nu c du trc mc menu con. - Index: v tr ca menu con trong 1 menu xc nh. - Shortcut: xc lp phm tt. - Parent: tn (Name) ca menu cha. - Text: chui hin th trn mc menu. S kin - Click: Xy ra khi ngi dng Click chn mc menu.
107

Private Sub MenuItem4_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MenuItem4.Click MessageBox.Show("Bn chn File/Save", "Thng bo") End Sub Private Sub MenuItem5_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MenuItem5.Click End End Sub 108

CONTEXT MENU
L iu khin cho php ngi dng truy trn menu nh thao tc nhp chut phi. Sau khi ContextMenu c to ra, chng vi mt iu khin khc nh vo ContextMenu ca iu khin . TD to ContextMenu & thit lp thuc tnh ca Form cp cc mc s c gn thuc tnh ContextMenu

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles _ MyBase.Load Me.ContextMenu = ContextMenu1 End Sub

109

TO MENU BNG M LNH


Ta c th thm hay xa i mt mc menu (MenuItem) ca 1 menu no nh vo cc phng thc Add & Remove. TD: X l s kin Load ca Form bng on m lnh to menu:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles MyBase.Load Dim myMainMenu As New MainMenu Dim FileMenu As New MenuItem Dim NewItem As New MenuItem Dim OpenItem As New MenuItem NewItem.Text = "&New" OpenItem.Text = "&Open..." FileMenu.Text = "&File" FileMenu.MenuItems.Add(NewItem) FileMenu.MenuItems.Add(OpenItem) myMainMenu.MenuItems.Add(FileMenu) Me.Menu = myMainMenu End Sub

110

TD xa 1 mc menu
Dim kq As New DialogResult kq = MessageBox.Show("Bn mun xa mc New khng?", "Xa", _ MessageBoxButtons.YesNo) If kq = DialogResult.Yes Then FileMenu.MenuItems.RemoveAt(0) End If 111

KT QU TH D

112

Chng 3: Cc kiu d liu & By li trong VB.NET


Cch thc s dng cc kiu d liu. Mt s kiu m rng: lit k, mng, tp hp. By li (Error Handler) trong VB.NET.

113

Bi 1: S dng cc kiu d liu

Cc kiu d liu ca .NET Framework. Mt s hm thao tc trn cc gi tr cc kiu cng nh cc hm x l chui

114

CC KIU CA .NET
Chia lm cc loi: s nguyn, s thc, lun l, k t. Kiu s nguyn:
Kiu .NET System.Byte System.Int16 System.Int32 System.Int64 Kiu VB.NET Byte Short Integer Long Min g. tr 0..255 -32768..32767 -231..231-1 -263..263-1
115

CC KIU CA .NET
Kiu s thc
Kiu .NET System. Single System. Double System. Decimal Kiu M t chnh Min g. tr VB.NET xc Single 32 bit 7 k s +/-1.4*10-45.. +/3.4*1038 Double Decimal 64 bit 15-16 k s 128 bit 28 k s +/-5.0*10-324.. +/1.7*10308 +/-1.0*10-28.. +/7.9*1028
116

CC KIU CA .NET
Kiu lun l: Kiu ca .NET l System.Boolean ng vi kiu Boolean ca VB.NET vi 2 gi tr l True v False. Kiu k t: Kiu ca .NET l System.Char ng vi kiu Char ca VB.NET (16 bit - Unicode). Trong VB.NET mt hng k t c t trong cp du ngoc kp vi k t c ng sau. TD: Dim a As Char a = Bc

117

CC KIU CA .NET
Kiu chui k t: Kiu .NET l System.String ng vi String trong VB.NET. Trong VB.NET, hng chui c t trong cp du ngoc kp. TD: Dim s As String s = Tin Hc K30 Kiu i tng: Kiu .NET l System.Object tng ng vi Object trong VB.NET. y l kiu gc cho tt c cc kiu trong VB.NET. TD: Dim o As Object o=5 o = New System.Windows.Forms.Form()
118

KIU D LIU - HM THNH VIN


Parse: hm c cc kiu gi tr. Hm ny cho php to ra mt gi tr s t mt chui. TD: Dim d As Integer d = Integer.Parse(12345) d l 12345 System.Console.WriteLine(CStr(d)) ToString: chuyn i gi tr sang dng chui. TD: Dim a As Integer, s As String a = 1234 s = a.ToString() System.Console.WriteLine(s)
119

KIU D LIU - HM THNH VIN


Cc hm x l chui
Hm Insert Remove Replace SubString ToLower, ToUpper Trim ngha Chn chui cho trc vo chui hin hnh Xa mt s k t c ch nh. Thay th chui con trong chui gc bng mt chui khc Tr v mt chui con t chui cho trc Chuyn chui sang ch thng (hoa) Loi b nhng k t khng cn thit trong chui

120

CC HM X L CHUI
Imports System.Console Module Module1 Sub Main() Dim s1 As String s1 = "Khoa CNTT - Dai Hoc Can Tho" WriteLine(s1) 1 s1 = s1.Insert(12, "Khu 3 - ") WriteLine(s1) 2 Dim s As String = s1.Substring(12) WriteLine(s) 3 s = s1.Substring(12, 5) WriteLine(s) 4 ReadLine() End Sub End Module

121

Bi 2: Kiu lit k, mng & tp hp


Kiu lit k (enum) Khai bo v s dng mng (array) Tp hp trong VB.NET (collection)

122

KIU LIT K
Cho php nh ngha mt tp gi tr hng gi nh. Nu khng ch ra gi tr ca Enum, gi tr u tin l 0. TD1: Khai bo kiu lit k TD2: Khng ch ra gi tr ca cho cc ngy trong tun. Enum
Enum Week Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6 Sunday = 7 End Enum Public Enum zero one two End Enum Numbers '=0 '=1 =2

Dim a As Numbers WriteLine((a.two*2))


123

MNG
Mng: tp hp cc phn t c cng kiu. Khai bo mng 1 chiu: Dim <Tn bin>(<Kch thc>) As <Kiu phn t> TD: Khai bo mng c 31 s nguyn t 0 n 31
Dim a(30) As Integer

Ta c th khng ch ra kch thc mng, nhng sau ta phi khi to mng. Dim a() As Integer TD:
a = New Integer() {1,2,3,4} Dim f As Integer For Each f In a Write(f) Next
124

MNG NHIU CHIU


Khai bo tng t mng 1 chiu nhng c thm kch thc ca cc chiu cn li.
TD: Khai bo ma trn 3 dng 5 ct Dim m(2, 4) As Single Khai bo v khi to ma trn Dim intArrays(,) As Integer = {{1, 2, 3}, {4, 5, 6}} Hin th theo dng ma trn Dim f As Integer, c As Integer = 0 For Each f In intArrays If c Mod 3 = 0 Then WriteLine() Write(" ") Write(f) c=c+1 Next

125

TP HP (COLLECTION)
L mt lp c bit cha mt nhm cc i tng no . Kgt System.Collection nh ngha nhiu lp thnh vin: ArrayList, Stack, HashTable, BitArray, Queue Lp ArrayList: cung cp cc chc nng c bn ca 1 tp hp, c th c s dng cho nhiu mc ch khc nhau. Khai bo & khi to i tng ArrayList Dim myList As New System.Collections.ArrayList() Khi to i tng myList c 5 phn t Dim myList As New System.Collections.ArrayList(5)
126

ARRAY LIST
Phng thc - Add: Thm phn t vo tp hp - Remove: Xa phn t khi tp hp. - RemoveAt: Xa ti v tr xc nh trong tp hp TD:
Dim f As Interger, r As New System.Collections.ArrayList

For f = 1 To 5 r.Add(f) Next r.Remove(3) Xa 3 For Each f In r WriteLine(f) Next

127

ARRAY LIST
ArrayList c th cha cc phn t thuc cc kiu khc nhau. TD:
Dim f As Integer, r As New System.Collections.ArrayList For f = 1 To 5 r.Add(f) Next r.Add(Khoa Cng Ngh Thng Tin") r.Add(Khoa Kinh T & QTKD") Dim f1 As Object For Each f1 In r If TypeOf f1 Is String Then WriteLine(f1) Hin th gi tr l chui End If 128 Next

Bi 3: X l li trong VB.NET

Phn loi cc li trong ng dng. By cc li thc thi (runtime error). iu khin ErrorProvider.

129

PHN LOI LI
C 3 loi li (error) - Li c php (syntax error) - Li thc thi (runtime error) - Li logic (logic error) Ngoi l (Exception): l li xy ra lc thc thi chng trnh (thuc loi runtime error). Khi c ngoi l xy ra, nu khng c hnh ng thch hp chng trnh s b ngt. Cn phi c c ch x l ngoi l

130

EXCEPTION
Mt s ngoi l: ArithmeticException, InvalidOperationException, OverflowException, TypeLoadException, IndexOutOfRangeException, InvalidCastException, NullReferenceException, SecurityException Ngoi ra, ngi dng c th nh ngha ngoi l cho ring mnh (phi k tha t nhng lp trn). Thuc tnh ca Exception: - Message: Chui m t thng tin v ngoi l. - Source: tn ng dng hay i tng gy ra li.

131

X L NGOI L
Ngoi l c th c x l nh vo cc t kha: Try, Throw, Catch, Finally. Cu trc m hnh x l ngoi l
Try on m lnh c th gy li Catch e1 As Exception Nu li thuc loi e1, on m ny thc thi Ngc li, khi Catch k c thc thi Catch en As Exception Nu li thuc loi en, on m ny thc thi Finally on m ny lun thc thi, d ngoi l c xy ra hay khng? Phn ny khng bt buc End Try

132

X L NGOI L - TH D
TD: Ngoi l khng th i t chui sang s
Module Module1 Sub Main() Try Dim r As Integer, s As String Write("Nhap r= ) s = ReadLine() r = Integer.Parse(s) WriteLine(1 / r) Catch e As System.Exception WriteLine(e.Message + " Xu ly ngoai le") Finally WriteLine("Khoi Finally") End Try End Sub End Module

133

X L NGOI L - TH D

134

IU KHIN ERRORPROVIDER
S dng hin th icon li khi ngi dng thao tc li trn mt iu khin no trn form. Thuc tnh - BlinkRate: xc nh tc nhp nhy ca icon li. - BlinkStyle: xc nh cch thc m icon nhp nhy trn iu khin(AlwaysBlink, BlinkIfDifferentError, & NeverBlink). - Icon: ng dn ch n icon li. Phng thc - GetError: nhn v chui thng bo li. - SetError: xc lp chui thng bo li trn mt iu khin xc nh.
135

ERRORPROVIDER - TH D
X l ngoi l khi ngi dng nhp khng phi s.
Dim N, i As Integer, K As Long = 1 Try N = Integer.Parse(txtN.Text) For i = 1 To N K=K*i Next lblKQ.Text = CStr(K) Catch

err1.SetError(txtN, "y phi l gi tr s")


End Try
136

ERRORPROVIDER - TH D

137

Chng 4: Lp Trnh Hng i Tng vi VB.NET


Thuc tnh (Properties) a hnh (Polymorphism) Tha k (Inheritance) Giao din (Interface)

138

THUC TNH (PROPERTIES)


Thuc tnh l nhng c trng ca cc i tng ca 1 lp. Thuc tnh c th c to nh: - T kha Public. - Phng thc Property. TD: Lp Con ngi (Person) Class Person Public strName As String Public iAge As Integer Public iWeight As Integer End Class Vi cch truy cp Public, thuc tnh c th c truy xut khng gii hn. 139

THUC TNH (PROPERTIES)


Nu ta mun hn ch truy cp, ta c th s dng t kha Private (data hiding). Trong TD trn, ta c th nh ngha thuc tnh Name: Private strName As String Public Property Name() As String Set strName = Value End Set Get Name = strName End Get End Property
140

THUC TNH (PROPERTIES)


Khi Set: gn tr cho thuc tnh. Khi Get: ly gi tr ca thuc tnh. Thuc tnh ch c (ReadOnly): khai bo khi Get (khng c khi Set) hay c th khai bo cch tng minh trong khi Get nh t kha ReadOnly. TD: Thuc tnh tui ca lp Con ngi l ch c. Private iAge As Integer Public ReadOnly Property Age() As Integer Get Age = iAge End Get End Property
141

THUC TNH (PROPERTIES)


Thuc tnh ch ghi (WriteOnly): khai bo khi Set (khng c khi Get) hay c th khai bo cch tng minh trong khi Set nh t kha WriteOnly. TD: Trng lng ca lp Con ngi l ch ghi. Private iAge As Integer
Public WriteOnly Property Weight () As Integer

Set iAge = Value End Set End Property


142

A HNH (POLYMORPHISM)
a hnh: Kh nng cc phng thc c cng mt tn nhng cc tham s ca chng l khc nhau. Np chng phng thc (method overload): khai bo nhiu phng thc c cng mt tn (khc tham s) trong mt lp. Khi nh ngha cc phng thc ny, ta s dng t kha Overloads. TD: To lp im trong khng gian 2 chiu gm 2 thuc tnh l ta X & ta Y. - 2 phng thc xy dng: mt khng c tham s (gn X, Y, l 0), mt c tham s (cp (X1,Y1) c sn gn cho X,Y). - Phng thc hin th ta ca im ln mn hnh. - 2 phng thc tnh khong cch t im hin thi n 1 im khc, mt khng tham s (tinh kc n gc ta ), mt c tham s l mt im khc (tnh kc n im ny).
143

Class Point Private iX As Integer Private iY As Integer Public Property X() As Integer Get X = iX End Get Set(ByVal Value As Integer) iX = Value End Set End Property Public Property Y() As Integer Get Y = iY End Get Set(ByVal Value As Integer) iY = Value End Set End Property

Public Sub New() Me.X = 0 Me.Y = 0 End Sub Public Sub New(ByVal X1 As _ Integer, ByVal Y1 As Integer) Me.X = X1 Me.Y = Y1 End Sub Public Sub Display() WriteLine("({0},{1})", Me.X, Me.Y) End Sub Public Overloads Function _ Distance() As Single Return Sqrt(Me.X ^ 2 + Me.Y ^ 2) End Function
144

Public Overloads Function _ Distance(ByVal p As Point) As Single Return Sqrt((Me.X - p.X) ^ 2 + _ (Me.Y - p.Y) ^ 2) End Function End Class Kt thc N lp Point Hm main Sub Main() Dim p1, p2 As Point p1 = New Point(2, 2) p2 = New Point WriteLine("Toa do p1 la ({0},{1})", _ p1.X, p1.Y) WriteLine("Toa do p2 la ({0},{1})", _ p2.X, p2.Y) p1.Display() p2.Display()

WriteLine("Khoang cach p1 & p2: _ {0}", p1.Distance(p2)) WriteLine("Khoang cach p1 & goc _ toa do: {0}", p1.Distance()) ReadLine() End Sub

Lu : - S dng khng gian tn: System.Console & System.Math. - i vi phng thc xy dng, np chng ta khng c t t kha Overloads.

145

THA K (INHERITANCE)
Tha k l kh nng mt lp (lp con) tha hng nhng thuc tnh & cc hnh ng t 1 lp c (lp cha). VB.NET khng h tr a tha k. S dng t kha Inherits khi nh ngha lp con. TD: Thit k lp im trong khng gian 3 chiu tha k t lp im trong kg 2 chiu.
Class Point3D Inherits Point ' Tha k t lp Point Private iZ As Integer Public Property Z() As Integer Get Z = iZ End Get Set(ByVal Value As Integer) iZ = Value End Set End Property End Class

146

THA K - GHI PHNG THC


Lp con c th ghi cc phng thc ca lp cha. Phng thc ca lp cha phi s dng t kha Overridable, phng thc ca lp con s dng t kha Overrides. T kha MyBase: truy xut cc thuc tnh hay phng thc ca lp cha t lp con. TD: Lp im trong kg 3 chiu cn ghi phng thc hin th ta im ln mn hnh. Public Sub New() MyBase.New() Me.Z = 0 End Sub Public Sub New(ByVal x1 As _ Integer, ByVal y1 As Integer, _ ByVal z1 As Integer) MyBase.New(X1, Y1) Me.Z = z1 End Sub Public Overrides Sub Display() WriteLine("Toa do p1 la _ ({0},{1},{2})", Me.X, Me.Y, Me.Z) End Sub 147

THA K - GHI PHNG THC


Sub Main() Dim p1, p2 As Point3D p1 = New Point3D(1, 2, 3) p1.Display() p2 = New Point3D p2.Display() End Sub Kt qu chng trnh

148

GIAO DIN - INTERFACE


Nu mt lp cn th hin tnh a tha k, ta s dng giao din (Interface). Giao din c cc thuc tnh & cc phng thc ring, tuy nhin chng khng c m lnh ci t. Lp s dng giao din cn phi ci t (Implements) cc phng thc nh ngha trong giao din. TD:
Public Interface Interface1 Class Tool Implements Interface1 Sub A() Function B(ByVal C As _ Public Sub A() Implements Interface1.A Ci t A Integer) As Integer End Sub End Interface 149 End Class

Chng 5: C s d liu & VB.NET


Mt s khi nim v c s d liu Ngn ng hi SQL (Structure Language) Gii thiu v ADO.NET

Query

150

Bi 1: Mt s khi nim v c s d liu


C s d liu (Database) Bng (table) & trng (field) Kha Mi kt hp (relationship)

151

C S D LIU
C s d liu l mt kho cha thng tin. Flat files: tt c d liu cha trong 1 tp tin duy nht. TD: Bng tnh Excel:
t hng 1000 1000 1000 1001 1001 Ngy t 02/03/06 02/03/06 02/03/06 03/03/06 03/03/06 Hng ha Bt git Omo Kem nh rng P/S Du gi Clear Bt git Omo Tr chanh IceTea S lng 5 (kg) 10 (hp) 10 (chai) 15 (kg) 10 (gi) n gi 15000 10000 10000 15000 5000 Tn KH NV Cng NV Cng NV Cng a ch KH 01 TH 01 TH 01 TH

Trn Vn Ba 02 LTT Trn Vn Ba 02 LTT


152

C S D LIU
Bt li: - Lng ph khng gian lu tr. - C nhiu thng tin trng. - Rc ri trong bo tr. C s d liu quan h (relational database): tp hp cc nhm thng tin khc nhau gl bng (table) c kt hp li theo cch thc no . TD: Trong TD trn c s d liu c th gm 3 bng: - KhachHang(MaKH, TenKH, DiachiKH)

- HangHoa(MaHang, TenHang, Dongia, Ghichu) - DatHang(STTDH, MaKH, MaHang, Soluong)


153

C S D LIU - CC KHI NIM


Bng (table): cha cc mu tin l cc mu d liu ring r trong phn nhm d liu. Mu tin (record): cha cc trng (field), mi trng th hin mt b phn d liu ca mu tin. TD bng KhachHang: MaKH Mu tin 1 Mu tin 2 KH01 KH02 Trng 1 TenKH NV Cng Trn Vn Ba Trng 2 Diachi 01 TH 02 LTT Trng 3
154

C S D LIU - KHA
Kha chnh (primary key): l mt hay nhiu trng m chng xc nh duy nht mi mu tin trong bng. TD Kha chnh bng KhachHang l MaKH. HangHoa l MaHang. DatHang l STTDH, MaKH, MaHang Kha ngoi (foreign key): l mt hay nhiu trng mt bng nhng chng l kha chnh mt bng khc. TD trong bng DatHang ta c cc kha ngoi l MaKH (l kha chnh ca KhachHang), MaHang (kha chnh ca HangHoa).

155

C S D LIU - MI KT HP
Mi kt hp (relationship): s lin kt gia cc bng. 1-1: mt mu tin trong 1 bng xc nh 1 mu tin trong bng khc. 1-n: mi mu tin trong 1 bng xc nh nhiu mu tin trong bng khc. TD:

156

C S D LIU - MI KT HP
n-n: nhiu mu tin trong 1 bng lin kt vi nhiu mu tin trong bng khc. Mi kt hp ny cn thm bng th 3 lu cc quan h gia 2 bng. TD: CSDL v ngi s dng:

157

C S D LIU - TON VN THAM CHIU


Ton vn tham chiu (referential integrity): xc nh mi khi d liu trong cc bng b thay i (thm, sa, xa) cc mi kt hp vn khng b nh hng. - Cascade update: Nu c s thay i gi tr ca 1 kha, gi tr ca kha cc bng khc cng thay i theo. - Cascade delete: Nu mt mu tin b xa, tt c cc mu tin c lin quan trong c s d liu b xa theo. Thun li: Khng cn vit m lnh cp nht li c s d liu mi khi c s thay i trn kha chnh. Tuy nhin chng vn mt hn ch.
158

Bi 2: Ngn ng hi SQL

Structure Query Language (SQL) La chn d liu vi cu lnh Select Cp nht d liu vi Update Chn thm d liu vi Insert Xa d liu vi Delete

159

STRUCTURE QUERY LANGUAGE

SQL l ngn ng CSDL chun. SQL gm nhiu phn: Ngn ng nh ngha d liu, ngn ng thao tc d liu trao i, to view, cp quyn Cu lnh thng s dng: Select, Update, Insert, Delete.

160

SQL - CU LNH SELECT


c s dng la chn d liu theo mt s iu kin no . Mnh Select TD: Vi CSDL ngi dng - Tm kim tt c cc ngi dng Select UserName From Users - Nu mun tn cc ngi dng khng trng nhau: Select Distinct UserName From RoleUser - K t * c dng ch tt c cc trng Select * From Users - Sau Select c th l mt biu thc Select RoleID*10, RoleName From Roles
161

SQL - CU LNH SELECT


Mnh Where: dng lc & kt ni d liu. TD: - Tm cc tn quyn c m >3 Select RoleName From Roles Where RoleID>3 - Tm cc b (ngi dng, tn quyn) tng ng vi m quyn >3 Select UserName, RoleName From Roles, RoleUser Where RoleUser.RoleID = Roles.RoleID AND Roles.RoleID > 3 Cc php ton: - So snh: >, >=, <, <=, =, <>, BETWEENAND - Logic: AND, NOT, OR TD: Tm cc tn quyn c m t 2 n 4 Select RoleName From Roles Where RoleID BETWEEN 2 AND 4
162

SQL - CU LNH SELECT


Php ton LIKE trn chui: i chiu mu. - %: ng vi chui con bt k. - _:ng vi 1 k t bt k. TD: - Tm cc tn quyn c k t cui l e: Select RoleName From Roles Where RoleName LIKE %e - Tm cc tn ngi dng c k t th 2 l h Select UserName From Users Where UserName LIKE _h% Mnh sp th t Order By - ASC: th t tng. - DESC: th t gim. TD: La chn cc tn quyn c m >1 v sp xp chng theo th t tng. Select RoleName From Roles Where RoleID>1 Order By RoleName ASC 163

SQL - CU LNH INSERT


Dng thm 1 hay nhiu dng (mu tin) vo mt bng c. TD: - Thm ngi dng nqtoan vo bng User Insert Into Users Values(nqtoan, abc) - Ta c th ch r tn trng & gi tr cn xen. Insert Into Users(Password, UserName) Values(abc, nqtoan) - Thm cho tt c ngi dng quyn mi c m l 4 Insert Into RoleUser Select UserName As UserName, 4 As RoleID From Users
164

SQL - UPDATE & DELETE


Update: Cho php thay i gi tr cc dng (mu tin). TD: - Sa li mt khu ca ngi dng lhbao l abc Update Users Set Password = abc Where UserName = lhbao Delete: Xa cc dng (mu tin) tha iu kin. TD: - Xa tt c cc dng (mu tin) ca bng RoleUser Delete From RoleUser - Xa tt c cc quyn ca ngi dng lhbao Delete From RoleUser Where UserName = lhbao
165

Bi 3: Gii thiu v ADO.NET


OLE DB, ADO, ADO.NET Dataset .NET Data Providers - i tng Command. - i tng DataReader. - i tng DataAdapter. DataBinding
166

OLEDB
OLEDB: Object Linking and Embedding for DataBase: giao din c s d liu c s dng truy cp cc loi d liu khc nhau. M hnh:
Relational Database

OLEDB

Non-Relational Database
167

ACTIVEX DATA OBJECT (ADO)


Tp hp cc i tng truy cp c s d liu thng qua trnh cung cp OLEDB. M hnh
ADO OLEDB
Relational Database

Non-Relational Database

168

ADO.NET
L ci tin ca ADO. S dng XML vn chuyn d liu. WinForm DataSet DataObject DataSet Database

XML

Thnh phn c bn ca ADO.NET: - DataSet - .NET data provider: gm cc thnh phn Connection, Command, DataReader, DataAdapter.
169

DATASET
L i tng lu d liu c truy xut t c s d liu, s dng XML vn chuyn d liu. M hnh:
Client sa i Dataset Cp nht Dataset ln Server Gi d liu ti Dataset

Client
Gi Dataset ti Client

Dataset

Server

To Dataset: to i tng ca lp Dataset. TD: To Dataset c tn l EmpInfor Dim empDS As New Dataset(EmpInfor) Khng cn ch tn ca Dataset Dim empDS As New Dataset()

170

DATASET
Thuc tnh - Tables: tp cc bng ca Dataset. - Item: mt bng xc nh trong Dataset. Phng thc: - Add: thm mt bng. - RemoveAt: xa mt bng v tr xc nh. DataTable: l bng ly v t CSDL. - DataColumn: cc ct trong DataTable. - DataRow: dng d liu tht s.
171

TYPED DATASET
To mt th hin ca mt DataSet c sn trong d n. DataSet c sn thng thng c to t mt tp tin lc XML (XML Schema *.xsd). D dng truy cp n cc bng v cc ct trong bng khi vit m lnh.

172

UNTYPED DATASET
To mt th hin trc tip t lp DataSet. Cu trc cc bng & cc ct khng th c to mt cch trc tip t mt tp tin lc XML.

173

DATATABLE, DATACOLUMN, DATAROW


DataTable - Thuc tnh - Columns: tp hp cc ct - Dataset: thuc v Dataset no - Rows: tp hp cc dng DataColumn - Thuc tnh - ColumnName: tn ca ct - Datatype: kiu d liu - Table: ct thuc Table no DataRow - Thuc tnh - Item: gi tr mt ct xc nh. - Table: dng thuc DataTable no

174

.NET DATA PROVIDERS


Cho php tng tc gia CSDL & dataset. C th truy cp, sa i, d liu nh i tng Connection & Command. i tng Connection: thit lp mt ni kt d liu gia ng dng & CSDL. SQL .NET Data Provider OLE DB .NET Data Provider

System.Data System.Data.SqlClient

System.Data System.Data.OleDb
175

.NET DATA PROVIDERS


Thuc tnh: - ConnectionString: chui ni kt n CSDL. - Database: CSDL mun ni kt. TD: - SQL .NET Data Provider Dim conn As SqlConnection conn = New SqlConnection _ (server=www;uid=lhbao;pwd=abc;database=pubs) - OLE DB .NET Data Provider Dim conn As OleDb.OleDbConnection conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; _ Data Source=D:\User.mdb) - Provider: trnh cung cp CSDL. Mt s provider: Access: Microsoft.Jet.OLEDB.4.0 SQL Server: SQLOLEDB - Data Source: CSDL. - User Id: tn ngi dng. - pwd: mt khu
176

TH D .NET CONNECTION
To lp kt ni n CSDL Access vi lc khi to i tng cn truyn tham s l ng dn ch n CSDL User.mdb. Public Class cnAccess Public conn As OleDb.OleDbConnection Public Sub New(ByVal FileName As String) conn = New OleDb.OleDbConnection conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; & _ Data Source=" & FileName conn.Open() End Sub Protected Overrides Sub Finalize() conn.Close() conn = Nothing End Sub End Class
177

I TNG COMMAND
Tham chiu n CSDL nh vic thc thi mt cu lnh (SQL, Stored Procedure). 2 loi Command: - SQLCommand: SQL Server. - OleDbCommand: cc loi CSDL ca cc HQTCSDL khc nhau (OleDb.OleDbCommand) Thuc tnh - Connection: ni kt CSDL. - CommandType: kiu Command c ch ra trong CommandText; c 3 loi: + Text + Stored Procedure + Table Direct Thc thi Command: - ExecuteNonQuery: thc thi cu truy vn hnh ng. - ExecuteScalar: kt qu cu truy vn l mt gi tr. - ExecuteReader: thc thi cu truy vn, kq l mt DataReader.
178

DATAREADER
Cha d liu ch c (readonly) & ch cho php di chuyn ti (forwardonly). Gm SQLDataReader & OleDbDataReader. Thuc tnh: - FieldCount: S trng. - IsClosed: DataReader c ng hay ko? Phng thc: - Close: ng DataReader. - GetName: ly tn 1 ct x. - GetValue: gi tr ca 1 ct x. - Read: c tun t tng dng. DataReader c khi to nh gi thc thi phng thc ExecuteReader ca i tng Command. TD: Dim myReader As SqlDataReader myReader = myCommand.ExecuteReader
179

DATAADAPTER
S dng cp nht d liu t ngun d liu n Dataset & ngc li. Gm SqlDataAdapter & OleDbDataAdapter. Phng thc - Fill: ng b d liu gia Dataset & ngun d liu.

180

DATABINDING
Rng buc gi tr trong ngun d liu vi iu khin ca Winform. Simple Data Binding: 1 gi tr t dataset rng buc vi 1 iu khin. TD: Ct Salary ca bng Employes rng buc vi thuc tnh Text caTextBox txtSa Dim t As DataTable = Dataset.Tables(Employes) t.Bindings.Add(Text, t, Salary) Complex DataBinding: mt iu khin rng buc ton b dataset. Ch c iu khin DataGrid & ComboBox h tr loi ny. TD: Rng buc ton b d liu ca trng DepartmentName vi ComboBox cboDPName Dim t As DataTable = Dataset.Tables(Daparment) cboDPName.DataSource = t cboDPName.DisplayMember = DepartmentName
181

TH D DATABINDING
Vi CSDL Users.mdb, thit k Form cho php hin th tn ngi dng cng cc quyn tng ng. Gii quyt: - S dng lp cnAccess phn trc to kt ni. - Mt i tng Command thc thi truy vn. - Mt i tng DataAdapter c dng thit lp cho 1 Dataset. - Rng buc Dataset vi li hin th.
182

Public Class frmUser Inherits System.Windows.Forms.Form Private cn As cnAccess Private dr As OleDb.OleDbDataReader Private com As OleDb.OleDbCommand Private da As OleDb.OleDbDataAdapter Private dt As DataSet Private Sub Form1_Load(ByVal sender As _ System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cn = New cnAccess("F:\Data\Bai giang\VBNet\users.mdb") com = New OleDb.OleDbCommand("SELECT Users.UserName, & _ Roles.RoleName FROM Users, Roles, RoleUser WHERE & _ Roles.RoleID = RoleUser.RoleID AND Users.UserName = & _ RoleUser.Username") com.Connection = cn.conn da = New OleDb.OleDbDataAdapter(com) dt = New DataSet da.Fill(dt) grdHT.DataSource = dt.Tables(0) End Sub

183

TH D V CP NHT D LIU
Cng vi CSDL Users.mdb, thit k Form cho php thm quyn cho ngi dng. Gii quyt: - Kt ni n CSDL nh lp cnAccess. - Rng buc ComboBox ngi dng vi d liu ca bng Users - Rng buc ComboBox quyn vi d liu ca bng Roles - Thm quyn cho ngi dng xc nh thc cht l thm vo bng RoleUser (ngi dng, m quyn).

184

Public Class frmCom Inherits System.Windows.Forms.Form Private cn As cnAccess Private comUser, comRole As OleDb.OleDbCommand Private drUser, drRole As OleDb.OleDbDataAdapter Private dt As DataSet Private Sub frmCom_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load cn = New cnAccess("F:\Data\Bai giang\VBNet\Baigiang\users.mdb") comUser = New OleDb.OleDbCommand("Select UserName From Users") comUser.Connection = cn.conn drUser = New OleDb.OleDbDataAdapter(comUser) dt = New DataSet drUser.Fill(dt, "Users") cboUser.DataSource = dt.Tables("Users") cboUser.DisplayMember = "UserName" comRole = New OleDb.OleDbCommand("Select * From Roles") comRole.Connection = cn.conn drRole = New OleDb.OleDbDataAdapter(comRole) drRole.Fill(dt, "Role") cboRole.DataSource = dt.Tables("Role") cboRole.DisplayMember = "RoleName" 185 End Sub

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnAdd.Click Dim r() As DataRow
Tm m quyn da vo tn quyn trn ComboBox tn quyn
r = dt.Tables("Role").Select("RoleName = '" & cboRole.Text & "'") Try Dim comT As OleDb.OleDbCommand

Thc thi cu truy vn hnh ng


comT = New OleDb.OleDbCommand("Insert Into RoleUser Values(" & _ r(0).Item(0) & ",'" & cboUser.Text & "')", cn.conn)

comT.ExecuteNonQuery() MessageBox.Show("Thm hon tt!") Catch e1 As Exception MessageBox.Show("D liu c. Thm khng thnh cng!") End Try End Sub End Class
186

KT QU

187

Cm n quan tm!!!

188

You might also like