Professional Documents
Culture Documents
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).
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
.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
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
Kiu d liu, bin & hng trong VB.NET. Cu lnh n trong VB.NET Cc lnh c cu trc ca VB.NET
14
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
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
HNG (CONSTANT)
L i lng c gi tr khng i trong qu trnh tnh ton.
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
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
statements statements
If expression Then
statements]
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)
End If
27
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 ]
TD: Tnh n!
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
System.Collections, System.ComponentModel, System.Data, System.Drawing, System.IO, System.Math, System.Reflection, System.Security, System.Threading, System.Windows.Forms
34
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
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
43
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
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
48
49
51
52
53
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
60
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
62
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
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
- 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
' 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
71
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
75
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
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
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
89
90
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.
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
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
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
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
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
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
113
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
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
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
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
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
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
ERRORPROVIDER - TH D
137
138
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
148
Query
150
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
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)
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
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
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
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
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
174
System.Data System.Data.SqlClient
System.Data System.Data.OleDb
175
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
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