bai giang chuyen de ve mot ngon ngu lap trinh vb
TRANSCRIPT
![Page 1: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/1.jpg)
1
CHUYÊN ĐỀ VỀ 1 NNLT - VISUAL BASIC.NET
Mục tiêu- Vận dụng bộ công cụ lập trình Visual Basic.NET để xây dựng ứng dụng (từ đơn giản đến phức tạp).- Có khả năng tìm hiểu sâu hơn các kỹ thuật lập trình Visual Basic.NET nâng cao (hệ thống, mạng…).
Cán bộ phụ trách Lâm Hoài Bảo ([email protected])
![Page 2: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/2.jpg)
2
CHUYÊN ĐỀ VỀ 1 NNLT - VISUAL BASIC.NET
Nội dung chủ yếu- Giới thiệu về .NET Framework.
- Giao diện người dùng.- Các kiểu dữ liệu của Visual Basic.NET.- Lập trình hướng đối tượng.
![Page 3: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/3.jpg)
3
CHUYÊN ĐỀ VỀ 1 NNLT - VISUAL BASIC.NET
Kiến thức liên quanKỹ năng sử dụng máy tính
(Windows), Lập trình căn bản.
Kỹ năng sử dụng máy tính
Sử dụng HĐH Windows.
Lập trình căn bản Kỹ năng lập trình tốt
![Page 4: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/4.jpg)
4
Tài liệu tham khảo- Developing Windows-Based Applications 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.
- www.elcit.ctu.edu.vn
CHUYÊN ĐỀ VỀ 1 NNLT - VISUAL BASIC.NET
![Page 5: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/5.jpg)
5
Chương 1: Giới thiệu về .Net Framework
.NET Framework & Common Language Runtime. Ngôn ngữ Visual Basic.Net Khai báo lớp Tạo đối tượng từ lớp
![Page 6: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/6.jpg)
6
Bài 1: Giới thiệu về .NET & VISUAL
BASIC.NET
Khái niệm và các thành phần của .Net Framework.Cấu trúc 1 ứng dụng .NETGiới thiệu về Visual Basic.NETChương trình Visual Basic.Net đầu tiên.
![Page 7: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/7.jpg)
7
.NET FRAMEWORK
Là một môi trường an toàn cho việc quản lý vấn đề phát triển và thực thi ứng dụng.Gồm 2 phần:- Common Language Runtime (CLR): quản lý việc thực thi mã lệnh.- Thư viện lớp .NET Framework: tập hợp các kiểu của CLR.
![Page 8: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/8.jpg)
8
CÁC THÀNH PHẦN CỦA .NET FRAMEWORK
![Page 9: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/9.jpg)
9
NGÔN NGỮ & .NET FRAMEWORK
Tương thích giữa các ngôn ngữ với nhau (do CLR).
App(VB.NET,
C#)
VB.NET (C#)
compiler
Microsoft Intermediate
Language (MSIL hay IL)
CLR
đọc & thực thi
Common Language Specification (CLS)
![Page 10: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/10.jpg)
10
VISUAL BASIC.NET
Một phần của Visual Studio.NETThuần hướng đối tượng.Ngôn ngữ duy nhất trong VS.NET hỗ trợ ràng buộc trễ.Ngôn ngữ duy nhất trong VS.NET hỗ trợ chế độ dịch nền.Không phân biệt chữ hoa và chữ thường.
![Page 11: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/11.jpg)
11
ỨNG DỤNG .NET ĐẦU TIÊN
Dịch: vbc <Tên tập tin>Sau khi dịch xong, ta nhận được tập tin thực thi (exe). Thực hiện tập tin này.TD: Tập tin HelloWorld.vb:Public Module HelloPublic Sub Main()
System.Console.WriteLine("hello world")End SubEnd Module
Dịch tập tin: vbc HelloWorld.vbThực thi tập tin HelloWorld.exe
![Page 12: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/12.jpg)
12
Bài 2: Ngôn ngữ lập trình VISUAL BASIC.NET
Kiểu dữ liệu, biến & hằng trong VB.NET.Câu lệnh đơn trong VB.NETCác lệnh có cấu trúc của VB.NET
![Page 13: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/13.jpg)
13
KIỂU DỮ LIỆU & ĐỊNH DANH
Kiểu giá trị (cấu trúc): Boolean, Char, Byte, Date, Decimal, Double, Integer, Long, Short, Single, Structure.Kiểu tham chiếu (lớp): Object, String.Định danh (danh biểu): là tên dùng để đặt cho biến, hằng, kiểu, lớp, phương thức… theo quy tắc:
- Bắt đầu là 1 ký tự từ A-Z.- Theo sau là các ký tự, hoặc ký số (0-9) hay
dấu gạch dưới.- Tên có độ dài tối đa là 40.- Không phân biệt chữ hoa và chữ thường.
TD tên: TH_K30, Dt_k31
![Page 14: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/14.jpg)
14
BIẾN (VARIABLE)
Là đại lượng dùng để chứa dữ liệu trong quá trình tính toán.Cú pháp khai báo biến:
Dim|Private|Public|Friend|Protected _
<Tên biến> [As <Kiểu>] [= <Biểu thức>]
![Page 15: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/15.jpg)
15
BIẾN (VARIABLE)
Biến cục bộ: là biến được khai báo trong một khối lệnh (Dim)TD: Tìm giá trị nghịch đảo của x
If x <> 0 ThenDim rec As Integerrec = 1/x
End IfMsgBox CStr(rec)
![Page 16: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/16.jpg)
16
BIẾN (VARIABLE)
Biến cấp module: là biến được khai báo trong phần khai báo toàn cục của một module (Public, Friend, Private).Private: là biến chỉ có hiệu lực trong module đó (mặc định).Friend: là biến chỉ có hiệu lực trong dự án đó.Public: biến có hiệu lực không chỉ trong dự án nó được khai báo mà còn trong các dự án khác có tham chiếu đến dự án này.
![Page 17: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/17.jpg)
17
BIẾN (VARIABLE)
Giả sử Project1, ta có Module sau:Public Module Module1
Public iModulePublic As IntegerFriend iModuleFriend As Integer
End ModuleNếu Project2 tham chiếu đến Project1, ta
viết: Project1.Module1.iModulePublic = 100
Nhưng Lỗi "not accessible" khi: Project1.Module1.iModuleFriend = 100
![Page 18: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/18.jpg)
18
THÍ DỤ VỀ KHAI BÁO BIẾN
Dim x As IntegerKhi muốn khai báo nhiều biến cùng kiểu, sử dụng dấu phẩy (,) phân cách: Dim x As Long, i, j, k As Integer, _
s As StringVừa khai báo vừa khởi tạo giá trị:
Dim x As Integer = 5Dim x As Integer = 6, _
y As Integer = 9
![Page 19: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/19.jpg)
19
HẰNG (CONSTANT)
Là đại lượng có giá trị không đổi trong quá trình tính toán.
Private|Public|Friend|Protected Const _ <Tên hằng> [As <Kiểu>]= <Biểu thức>
TD:Public Const Pi = 3.14
Private Const g As Single = 9.8
![Page 20: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/20.jpg)
20
BIỂU THỨC
Các phép toán số học (+, -, *, /, Mod, \, ^).Các phép toán quan hệ: And, Not, Or.Các phép toán so sánh: =, >=, <=, <, >, <>.Ngoài ra, ta có thể sử dụng cặp dấu ngoặc đơn để tăng độ ưu tiên.
![Page 21: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/21.jpg)
21
CHUYỂN ĐỔI KIỂU
Tùy chọn Option Strict: xác định cách thức trình biên dịch xác định sự tương thích kiểu trong biểu thức (On: BT phải tương thích kiểu, Off: VB tự động chuyển đổi kiểu).TD: Dim A as Long=6
Dim b As Integer=Asẽ có lỗi xuất hiện nếu đặt Option Strict OnMột số hàm chuyển đổi kiểu: CBool, CChar, CDate, CDbl, CDec, CInt, CLng, CObj, CSng, CStr.
![Page 22: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/22.jpg)
22
CÂU LỆNH OPTION
Tác động đến quá trình thực thi của trình biên dịch.Option Compare [Binary | Text]: cách thức so sánh chuỗi.Option Explicit [On | Off]: xác định các biến sử dụng bắt buộc phải khai báo hay không?Option Strict [On | Off]: tự động chuyển đổi kiểu trong biểu thức.
![Page 23: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/23.jpg)
23
CÂU LỆNH GÁNCú pháp: <Tên biến> = <Biểu thức>TD: Tính diện tích hình tròn biết bán kính là 5.
Imports SystemPublic Module Hello
Public Sub Main( ) Const Pi = 3.14 Dim R As Single = 5, S As Single S = Pi*R*R ‘ Gán trị tính diện tích Console.WriteLine("Dien tich " & _
CStr(S))End Sub
End Module
![Page 24: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/24.jpg)
24
CÂU LỆNH IFIf expression Then statements
End If
If expression Thenstatements
Else
statementsEnd If
If expression Thenstatements
ElseIf expression Thenstatements
ElseIf expression Thenstatements
[Elsestatements]
End If
Có 3 dạng chính:- If đơn giản.- If có phần Else- If và ElseIf nhiều lần.
![Page 25: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/25.jpg)
25
THÍ DỤ VỀ IF
If m=1 Or m=3 Or m=5 Or m=7 Or m=8 Or m=10 Or m=12 Then
System.Console.WriteLine(“31 days“)ElseIf m=4 Or m=6 Or m=9 Or m=11 Then
System.Console.WriteLine(“30 days“)Else
System.Console.WriteLine(“28 or 29 days”)End If
![Page 26: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/26.jpg)
26
CÂU LỆNH SELECT CASE
Select Case <biểu thức kiểm tra>Case <Danh sách kết quả biểu thức 1>
[Khối lệnh 1]Case <Danh sách kết quả biểu thức 2>
[Khối lệnh 2]……
[Case Else[Khối lệnh n]]
End SelectTừ khóa Is: So sánh <biểu thức kiểm tra> với 1 giá trịTừ khóa To: Xác lập miền giá trị của <biểu thức kiểm tra>
![Page 27: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/27.jpg)
27
THÍ DỤ SELECT CASE
Select Case TuoiCase Is <18 System.Console.WriteLine(“Vi thanh nien”)Case 18 To 30 System.Console.WriteLine(“Ban da truong thanh, lap gia dinh 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
Lưu ý: Trong thí dụ trên, không thể viết Case Tuoi<18
![Page 28: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/28.jpg)
28
VÒNG LẶP DO…LOOP Do While <Expression> <Statements> LoopThực thi Staments trong khi Expression đúng
Do Until <Expression><Statements>
LoopThực thi Staments cho đến khi Expression đúng thì dừng lại
TD: Tìm USLN của 2 số a & b
Do While (a Mod b <>0) r = a Mod b a = b b = rLoopUCLN = b
TD: Tìm USLN của 2 số a & b
Do Until (a Mod b=0) r = a Mod b a =b b= rLoopUCLN = b
![Page 29: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/29.jpg)
29
VÒNG LẶP FOR
Lặp xác định chính xác số lần lặp.For variable = expression1 To expression2 [Step expression ]
StatementsNext [ variable_list ]
TD: Tính n!Dim i As Integer, K As Long = 1For i = 1 To n
K = K * iNext
![Page 30: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/30.jpg)
30
VÒNG LẶP FOR EACH
Lặp qua một tập hợp các giá trị.For Each variable In expression
StatementsNext [ variable ]
TD: Dùng For Each đi qua toàn bộ các phần tử của 1 mảng.
Dim a( ) As Integer = {1, 2, 3, 4, 5}Dim b As IntegerFor Each b In a
System.Console.WriteLine(b)Next
![Page 31: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/31.jpg)
31
Bài 3: Thư viện lớp cơ sở .NET
- Mô tả về thư viện lớp cơ sở .NET.- Thiết lập một tham chiếu đến không gian
tên.- Tạo một thể hiện của 1 lớp của .NET
Framework hay của1 kiểu giá trị.
![Page 32: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/32.jpg)
32
KHÔNG GIAN TÊN (NAMESPACE)
Các thư viện lớp được tổ chức trong không gian tên; đây là một nhóm các lớp có liên quan với nhau.TD: System.Windows.Forms là kgt chứa các lớp tạo nên cửa sổ và các thành phần trên cửa sổ của trình ứng dụng.Kgt của .NET Framework được tổ chức phân cấp với gốc là kgt System.Một 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…
![Page 33: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/33.jpg)
33
KHAI BÁO BIẾN KIỂU THAM CHIẾU
Gồm 2 bước: khai báo và khởi tạo đối tượngTD: Khai báo biến đối tượng thuộc lớp Form trong System.Windows.FormsDim f As System.Windows.Forms.Formf = New System.Windows.Forms.Form()
![Page 34: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/34.jpg)
34
CÂU LỆNH IMPORTS
Dùng để tham chiếu đến namespace nào đó.Đặt ở đầu module chương trình.Làm viết gọn trong việc truy xuất đến 1 lớp của namespace.TD: Giả sử đầu module nào đó ta viết:
Imports System.Windows.Formsta chỉ cần khai báo biến đối tượng Form trong module đó
Dim f As Formf = New Form()
![Page 35: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/35.jpg)
35
Bài 4: LỚP
Nội dung chính:
Tạo 1 lớp mới.Tạo một thể hiện (đối tượng) của 1 lớp.
![Page 36: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/36.jpg)
36
KHÁI NIỆM LỚPNhững thuộc tính và hành động chung của các thực thể được nhóm lại để tạo nên 1 đơn vị duy nhất là lớp.TD: Lớp Con người có các thuộc tính và hành động sau:
- Tên- Chiều cao- Màu tóc.- Nói năng- Viết….
Những thuộc tính và hành động chung gọi là thành viên (member)
![Page 37: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/37.jpg)
37
KHÁI NIỆM ĐỐI TƯỢNG
Một đối tượng là một trường hợp cụ thể của một lớp.TD: Đối tượng 1 con người thực tế của lớp Con người:
- Tên: Đan Tú- Tuổi: 29- Trọng lượng: 46 kgHành động:- Đi- Nói- Suy nghĩ
![Page 38: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/38.jpg)
38
TẠO MỘT LỚP MỚI
Sử dụng từ khóa ClassClass <Tên lớp>
<Các thành viên của lớp>End ClassTD: Khai báo lớp PersonClass Person
Public Name As StringPublic Age As IntegerPublic Weight As Single
End Class
![Page 39: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/39.jpg)
39
TẠO ĐỐI TƯỢNG TỪ LỚP
Việc tạo 1 đối tượng chính là khai báo và khởi tạo biến đối tượng từ lớp.TD: Tạo đối tượng p thuộc lớp Person
Dim p As Personp = New Person()Dim p As New Person()
![Page 40: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/40.jpg)
40
PHƯƠNG THỨC (METHOD)
Các hành động của lớp được thể hiện qua phương thức (chương trình con).Trong VB.NET, phương thức có 2 loại: hàm (Function) và thủ tục (Sub).Khai báo hàm:
[Public | Private | Friend | Protected] Function _
<Tên hàm>(<Khai báo các tham số>) _As <Kiểu trả về>
<Các khai báo và câu lệnh định nghĩa hàm> End Function
<Khai báo các tham số>: giống như khai báo biến.Lời gọi hàm thực thi là 1 biểu thức:
<Tên hàm>(Danh sách tham số thực tế)
![Page 41: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/41.jpg)
41
PHƯƠNG THỨC (METHOD)
Khai báo thủ tục:[Public | Private | Friend | Protected] Sub _
<Tên thủ tục> (<Khai báo các tham số>)<Các khai báo và câu lệnh định nghĩa thủ tục>
End SubGọi thực thi thủ tục
<Tên thủ tục> (<Danh sách tham số thực tế>)TD:Public Sub MySub()
MessageBox.Show(“Thi du ve Sub")End SubFunction Add(ByVal first As Integer, ByVal second As _
Integer) As IntegerAdd = first + second
End Function
![Page 42: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/42.jpg)
42
TRUYỀN THAM SỐ CHO PHƯƠNG THỨC
2 cách truyền tham số:Truyền theo giá trị: mặc định hay từ khóa ByVal.Truyền theo địa chỉ: từ khóa ByRef.
![Page 43: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/43.jpg)
43
THÍ DỤ TRUYỀN THAM SỐPublic Sub Demo1()
Dim x, y As Integerx = 15y = 20' Gọi phương thức Demo2Demo2(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 + p2p2 = p2 + p1
End Sub
![Page 44: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/44.jpg)
44
PHƯƠNG THỨC XÂY DỰNG
Là phương thức được gọi thực hiện đầu tiên mỗi khi 1 đối tượng của 1 lớp được tạo ra.Trong VB.NET, phương thức xây dựng luôn là Sub New()TD:
Class PersonPublic Name As StringPublic Age As IntegerPublic Weight As SinglePublic Sub New() ‘ Phương thức xây dựng
Name =“”Age = 0Weight = 0
End SubEnd Class
![Page 45: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/45.jpg)
45
PHƯƠNG THỨC HỦY
Là phương thức được gọi thực hiện cuối cùng khi đối tượng bị thu hồi.Phương thức này có nhiệm vụ giải phóng tài nguyên được dùng cho đối tượng.Trong VB.NET, phương thức này phải là Overrides Sub Finalize()
TD:Class Person
…Protected Overrides Sub Finalize()
‘ Thu hồi các thuộc tínhName = “”
End SubEnd Class
![Page 46: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/46.jpg)
46
Chương 2: Giao diện người dùng (User
Interface)
Tạo giao diện người dùng. Lập trình hướng sự kiện (Event Programming). Sử dụng cửa sổ (biểu mẫu, Form). Sử dụng các điều khiển (Controls) khác để thiết kế giao diện.
![Page 47: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/47.jpg)
47
Bài 1: Lập trình sự kiện (Event Programming)
Các tập tin của 1 ứng dụng VB.NET. Sự kiện & lập trình hướng sự kiện
![Page 48: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/48.jpg)
48
CÁC TẬP TIN CỦA 1 ỨNG DỤNG WINDOWS FORM
Ứng dụng thiết kế & lập trình được quản lý trong VB.NET bằng Solution. 1 Solution có thể chứa nhiều dự án (Project). Các tập tin khi tạo 1 ứng dụng VB.NET:
*.sln Tập tin Solution (văn bản)
*.vb Tập tin chứa định nghĩa về form & mã lệnh bên trong đó
*.resx Tập tin tài nguyên
*.vbproj Tập tin dự án
… Các tập tin khác
![Page 49: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/49.jpg)
49
TẠO ỨNG DỤNG WINDOWS FORM
![Page 50: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/50.jpg)
50
![Page 51: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/51.jpg)
51
![Page 52: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/52.jpg)
52
LẬP TRÌNH SỰ KIỆN (EVENT PROGRAMMING)
Sự kiện (event): là hành động của người dùng tác động vào ứng dụng đang thực thi.TD: Nhấn phím bất kỳ trên bàn phím.
Nhấp chuột. Khả năng đáp ứng lại sự kiện của ứng dụng phụ thuộc người lập trình. Người lập trình phải viết đoạn mã lệnh, đoạn lệnh này sẽ thực thi khi sự kiện tương ứng xảy ra.TD: Máy tính Calculator, trình vẽ Paint.
![Page 53: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/53.jpg)
53
Mã lệnh cho sự kiện Click của Ghi đĩa
……………………………………Mã lệnh cho sự kiện Click của In giấy
……………………………………
……………………………………
Vấn đề gì xảy ra nếu:
- Người dùng không tác động gì vào ứng dụng?
- Người dùng nhập dữ liệu vào các ô nhập?
- Người dùng nhấp chọn Ghi đĩa?
- Người dùng nhấp chọn In giấy?
![Page 54: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/54.jpg)
54
Bài 2: Cửa sổ (Biểu mẫu, Form)
Khái niệm biểu mẫu. Thêm biểu mẫu vào ứng dụng. Thiết lập startup form & vị trí form lúc startup. Các thuộc tính, phương thức, sự kiện của biểu mẫu.
![Page 55: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/55.jpg)
55
CỬA SỔ (BIỂU MẪU, FORM)
Là cửa sổ được lập trình để hiển thị dữ liệu & nhận thông tin phía người dùng.Thêm biểu mẫu vào dự án (khi thiết kế):- Trên mục menu Project, chọn Add Windows Form. Hộp thoại Add New Item bật ra.- Chọn Windows Form, nhấp Open.Thêm biểu mẫu bằng mã lệnh: Khai báo và khởi tạo đối tượng biểu mẫu.TD: Dim f As DialogFormf = New DialogForm()
![Page 56: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/56.jpg)
56
BIỂU MẪU THỪA KẾ (INHERITED FORM)
Là biểu mẫu được tạo ra và kế thừa các thuộc tính, phương thức, sự kiện của biểu mẫu cha.Thêm biểu mẫu thừa kế vào ứng dụng (bằng mã lệnh):- Thêm 1 biểu mẫu vào ứng dụng.- Cho biểu mẫu này thừa kế 1 biểu mẫu cha nào đó bằng cách sử dụng từ khóa Inherits trong khai báo lớp.TD: Tạo biểu mẫu myForm thừa kế từ biểu mẫu MainForm:
Public Class myFormInherits MainForm‘ Cài đặt của lớp myForm
End Class
![Page 57: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/57.jpg)
57
BIỂU MẪU - THUỘC TÍNH
Thuộc tính: đặc tính tạo nên vẻ bề ngoài của điều khiển.- BackColor: màu nền.- ForeColor: màu chữ.- Text: Tiêu đề biểu mẫu.- Font: Font chữ của biểu mẫu.…………….. Ta có thể thiết lập các thuộc tính này bằng mã lệnh hay nhờ vào cửa sổ thuộc tính.TD: Me.BackColor = System.Drawing.Color.Red
![Page 58: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/58.jpg)
58
THIẾT LẬP THUỘC TÍNH BẰNG CỬA SỔ THUỘC TÍNH
![Page 59: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/59.jpg)
59
BIỂU MẪU – PHƯƠNG THỨC
Form.Show : thể hiện form lên màn hình. Form.ShowDialog : thể hiện form lên màn hình hình dạng Dialog. Form.Activate : form được kích hoạt (active) Form.Hide : ẩn form đi. Form.Close : đóng lại form và giải phóng tài nguyên.TD:Dim myForm As New DialogForm()myForm.Show() ‘ Thể hiện Form trạng thái bình thườngmyForm.ShowDialog() ‘ Thể hiện Form dạng DialogmyForm.Activate() myForm.Hide() myForm.Close()
![Page 60: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/60.jpg)
60
BIỂU MẪU - SỰ KIỆN (EVENT)
Tạo đoạn mã xử lý sự kiện trong VB.NET:
![Page 61: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/61.jpg)
61
BIỂU MẪU - SỰ KIỆN (EVENT)
Load : Xảy ra khi thể hiện đầu tiên của Form được Load lên màn hình. Activated : Xảy ra khi Form được kích hoạt. Deactivated: Xảy ra khi Form mất kích hoạt. VisibleChanged : Xảy ra khi Form có thay đổi trạng thái (ẩn/hiện). Closing: Xảy ra khi Form đang trong quá trình đóng lại. Closed : Xảy ra sau sự kiện Closing.
Lưu ý: - Sự kiện Load được sử dụng để khởi tạo giá trị của các thành phần trong Form.- Sự kiện Closing & Closed thường được sử dụng để thu hồi tài nguyên được cấp phát cho Form.
![Page 62: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/62.jpg)
62
THÍ DỤ XỬ LÝ SỰ KIỆN CỦA FORM
Giả sử ta muốn ngăn thao tác đóng Form của người dùng:Sự kiện Form_Closing(), ta thiết lập:
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
![Page 63: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/63.jpg)
63
Bài 3: Các điều khiển trong VB.NET
Khái niệm điều khiển. Một số thao tác với các điều khiển khi thiết kế ứng dụng. Một số điều khiển thường sử dụng.
![Page 64: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/64.jpg)
64
ĐIỀU KHIỂN (CONTROL)
Điều khiển: Các thành phần có sẵn để tạo giao diện tương tác với người dùng. Một số điều khiển: Label, TextBox, Button, ListBox, ComboBox, OptionButton, CheckBox, PictureBox…
![Page 65: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/65.jpg)
65
ĐIỀU KHIỂN NHÃN - LABEL
Dùng để hiển thị dữ liệu cho người dùng.Thuộc tính:- Name: Tên của Label- Text: Chuỗi hiển thị trên Label.- BorderStyle: Kiểu viền của điều khiển Label (None, FixedSingle, Fixed3D)- Image: hình ảnh của Label
TD: Thay đổi Text của Labelcó Name là lblTest1 thành ‘None’:lblTest1.Text = “None”
![Page 66: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/66.jpg)
66
ĐIỀU KHIỂN Ô NHẬP LIỆU - TEXT BOX
Dùng để nhận/hiển thị dữ liệu về phía người dùng.Thuộc tính:- Name: Tên của ô nhập liệu TextBox.- Text: Chuỗi hiển thị trên ô nhập liệu TextBox.- Multiline: TextBox có nhận nhiều dòng văn bản hay không? (Mặc định giá trị này là False).- CharacterChasing: tự động chuyển đổi dữ liệu nhập của TextBox thành dạng tương ứng (Normal, Upper, Lower).- PasswordChar: Ký tự hiển thị thay thế khi nhập.- Font: Font chữ của TextBox
![Page 67: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/67.jpg)
67
Sự kiện:- KeyPress: Xảy ra khi người dùng nhấn phím có mã Ascii từ bàn phím.
Để kiểm chứng ký tự người dùng nhập từ bàn phím người ta sử dụng 1 số hàm Char.IsDigit, Char.IsLetter, Char.IsLetterOrDigit, Char.IsPunctuation , Char.IsLower , Char.IsUpper.
TD: Sự kiện KeyPressPrivate Sub TextBox1_KeyPress (ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles _ TextBox1.KeyPressIf Char.IsDigit(e.KeyChar) = True Then
MessageBox.Show("You pressed a number key")End If
End Sub
ĐIỀU KHIỂN Ô NHẬP LIỆU - TEXT BOX
![Page 68: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/68.jpg)
68
Sự kiện Validating:- Xảy ra trước khi TextBox mất kích hoạt, dùng để kiểm tra dữ liệu nhập có hợp lệ hay không?- Chỉ thực hiện khi người lập trình thiết lập thuộc tính CausesValidation của Text Box là True.
TD: Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _ System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
' Kiểm tra giá trị của TextBoxIf TextBox1.Text = "" Then
' Bắt buộc TextBox phải nhập lại, TextBox phải được kích hoạte.Cancel = True
End IfEnd Sub
ĐIỀU KHIỂN Ô NHẬP LIỆU - TEXT BOX
![Page 69: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/69.jpg)
69
ĐIỀU KHIỂN NÚT NHẤN - BUTTON
Dùng để xác nhận 1 hành động hay thao tác của người dùng. Thuộc tính:- Name: Tên của Button.- Text: Chuỗi hiển thị trên Button.- Image: Hình ảnh trên Button.- FlatStyle: Hình dạng của Button (Flat, Popup, Standard, and System.)- Font: Xác lập Font chữ cho Button.
![Page 70: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/70.jpg)
70
Sự kiện- Click: Xảy ra khi người dùng nhấp chuột vào Button.TD: Tính N! với N nhập từ bản phím.
ĐIỀU KHIỂN NÚT NHẤN - BUTTON
Sự kiện 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
![Page 71: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/71.jpg)
71
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - LISTBOXES
Sử dụng để hiển thị một danh sách cho người dùng lựa chọn. WinForms hỗ trợ 2 loại list box:- ListBox
- CheckedListBox
Sự khác biệt chính là những phần tử của CheckedListBox được hiển thị có dấu check trước đó.
![Page 72: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/72.jpg)
72
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - LISTBOX
Thuộc tính- Items: tập các phần tử trong ListBox.- SelectedIndex: xác định chỉ số của mục đang hiện thời được chọn trong ListBox, phần tử đầu tiên có chỉ số 0.- SelectedItems: tập các mục đang được chọn.- SelectedValue: giá trị của mục đang được chọn.- Text: chuỗi trên mục được chọn.Phương thức- ClearSelected: xóa hết các lựa chọn trên ListBox.- FindString: tìm mục đầu tiên trong danh sách mà phần tử đó có giá trị bắt đầu là một chuỗi cho trước.
![Page 73: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/73.jpg)
73
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - LISTBOX
Sự kiện- SelectedIndexChanged: xảy ra khi giá trị của thuộc tính SelectedIndex thay đổi.- SelectedValueChanged: xảy ra khi giá trị của thuộc tính SelectedValue thay đổi.TD: Sử dụng thuộc tính đối tượng Items để thêm các mục vào ListBox. Xử lý sự kiện Load của Form để viết mã lệnh xử lý.
![Page 74: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/74.jpg)
74
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - LISTBOX
Private Sub myForm_Load(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _
Handles MyBase.LoadMe.lstTen.Items.Add("Nguyễn Văn Cường")Me.lstTen.Items.Add("Lâm Quang Hà")Me.lstTen.Items.Add("Trần Trung Trực")Me.lstTen.Items.Add("Lê Quang Trãi")
End SubNgoài ra thuộc tính đối tượng Items còn có một số thuộc tính & phương thức khác: Count, Clear, Insert, RemoveAt, Item…
![Page 75: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/75.jpg)
75
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - CHECKEDLISTBOX
CheckedListBox cũng hỗ trợ các thuộc tính, phương thức, sự kiện giống như ListBox; bên cạnh đó điều khiển này còn có những đặc điểm riêng:
Thuộc tính- CheckedIndies: tập các chỉ số của các phần tử
được lựa chọn (checked).- CheckedItems: tập hợp các phần tử được chọn
(checked).TD: Cho hình bên, ta có:- CheckedIndies={1,2}- CheckedItems={Lâm Quang Hà,
Trần Trung Trực}
![Page 76: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/76.jpg)
76
ĐIỀU KHIỂN DANH SÁCH LỰA CHỌN - CHECKEDLISTBOX
Phương thức- SetItemChecked: thiết lập mục có chỉ số xác định được chọn (checked).- SetItemCheckState: xác lập trạng thái checked của 1 mục xác định.TD: Sử dụng phương thức SetItemCheckState
Sự kiện Click của Button Trạng thái
Me.lstNuoc.SetItemCheckState(1, _
CheckState.Checked) Me.lstNuoc.SetItemCheckState(2, _
CheckState.Indeterminate) Me.lstNuoc.SetItemCheckState(3, _
CheckState.Unchecked)
![Page 77: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/77.jpg)
77
ĐIỀU KHIỂN HỘP DANH SÁCH - COMBOBOX
Là điều khiển kết hợp giữa 2 điều khiển TextBox & ListBox. Điều khiển này hỗ trợ các tính năng như ListBox; tuy nhiên chúng vẫn có phần mở rộng so với ListBox.Thuộc tính- DropDownStyle: kiểu của ComboBox, gồm có Simple, DropDownList & DropDown.
Simple DropDown DropDownList
![Page 78: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/78.jpg)
78
ĐIỀU KHIỂN LISTVIEW
Cho phép hiển thị một danh sách các phần tử ở dạng thức đặc biệt. ListView có 4 kiểu sau:- Text only: mặc định.- Text with small icon.- Text with large icon.- Detail view: các phần tử hiển thị nhiều cột.ListView kế thừa các tính năng của CheckedListBox.Thuộc tính- CheckBoxes: mỗi phần tử trong ds có 1 checkbox đứng trước.- Items: tập các phần tử trong ds.- MultiSelect: ds có nhiều lựa chọn không?
![Page 79: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/79.jpg)
79
LISTVIEW - THÍ DỤ
![Page 80: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/80.jpg)
80
LISTVIEW - THÍ DỤDim lsvTen As New ListViewlsvTen.Width = 300lsvTen.Height = 200' Hiển thị chi tiếtlsvTen.View = View.Details' Sửa giá trị của TextlsvTen.LabelEdit = True
lsvTen.FullRowSelect = True' Hiển thị lướilsvTen.GridLines = True
Dim item1 As New ListViewItem("Nguyễn Văn An", 0)item1.SubItems.Add("1")item1.SubItems.Add("2")item1.SubItems.Add("3")
![Page 81: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/81.jpg)
81
Dim item2 As New ListViewItem("Lê Chí Công", 1)item2.SubItems.Add("4")item2.SubItems.Add("5")item2.SubItems.Add("6")Dim item3 As New ListViewItem("Huỳnh Văn Hảo", 0)item3.SubItems.Add("7")item3.SubItems.Add("8")item3.SubItems.Add("9")' Tạo các cột cho các mụclsvTen.Columns.Add("Họ tên", -2, HorizontalAlignment.Left)lsvTen.Columns.Add("Toán", -2, HorizontalAlignment.Left)lsvTen.Columns.Add("Lý", -2, HorizontalAlignment.Left)lsvTen.Columns.Add("Hóa", -2, HorizontalAlignment.Center)‘ Thêm các mục vào ListViewlsvTen.Items.AddRange(New ListViewItem() _
{item1, item2, item3})
![Page 82: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/82.jpg)
82
ĐIỀU KHIỂN TREEVIEW
Cho phép hiển thị dữ liệu ở dạng phân cấp. TreeView hỗ trợ hầu hết các thuộc tính, phương thức & sự kiện của ListView. Thuộc tính- ImageList: ds các ảnh được hiển thị ở mỗi nút.- Nodes: ds các nút.- SeletedNode: nút hiện thời được lựa chọn. Phương thức- GetNodeAt: truy xuất 1 nút ở vị trí xác định trong TreeView.- GetNodeCount: tổng số nút. Sự kiện- BeforeSelect, AfterSelect: xảy ra trước/sau khi 1 nút được chọn.- BeforeCollapse, AfterCollapse: xảy ra trước/sau khi thu hẹp 1 nút.- BeforeExpand, AfterExpand: xảy ra trước/sau khi 1 mở rộng 1 nút.
![Page 83: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/83.jpg)
83
ĐIỀU KHIỂN TREEVIEW - THÍ DỤ
Hiển thị 10 khách hàng, mỗi khách hàng có 5 đơn đặt hàng. Thiết kế các lớp Khách hàng & Đặt hàng. Tạo TreeView như hình
![Page 84: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/84.jpg)
84
Public Class CustomerPublic CustomerName As StringPublic CustomerOrder As _ ArrayListPublic Sub New(ByVal Name _
As String)CustomerName = NameCustomerOrder = New _
ArrayList(0)End Sub
End Class
Public Class Orders Public OrderID As String Public Sub New(ByVal _ id As String)
OrderID = id End SubEnd Class
Sự kiện Load của Form được xử lý
Dim customerArray As New ArrayList' Thêm khách hàngDim x As IntegerFor x = 0 To 9
customerArray.Add(New Customer("Customer " + x.ToString()))Next x
![Page 85: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/85.jpg)
85
‘ Thêm đơn đặt hàngDim customer1 As CustomerFor Each customer1 In customerArray
Dim y As IntegerFor y = 0 To 4 customer1.CustomerOrder.Add(New Orders("Order" + y.ToString()))Next y
Next customer1 ' Xóa TreeViewTreeView1.Nodes.Clear()
' Tạo các nút cha là các khách hàng
For Each customer1 In customerArrayTreeView1.Nodes.Add(New TreeNode(customer1.CustomerName))' Các nút con là các đơn đặt hàngDim order1 As OrdersFor Each order1 In customer1.CustomerOrder
TreeView1.Nodes(customerArray.IndexOf(customer1)).Nodes.Add( _ New TreeNode(customer1.CustomerName + ".“ + order1.OrderID))Next order1
Next customer1
![Page 86: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/86.jpg)
86
ĐIỀU KHIỂN CHECKBOX
Được sử dụng để nhận thông tin dạng Yes/No.Thuộc tính- Checked: Xác định điều khiển đang ở trạng thái nào (True/False).Sự kiện- CheckedChanged: Xảy ra khi giá trị của thuộc tính 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 IfEnd Sub
![Page 87: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/87.jpg)
87
ĐIỀU KHIỂN RADIO BUTTON
- Là điều khiển cho phép nhận dữ liệu Yes/No, nhưng các radio button cùng 1 nhóm thì không thể chọn đồng thời.
- Các thuộc tính, phương thức, sự kiện tương tự CheckBox.
![Page 88: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/88.jpg)
88
ĐIỀU KHIỂN NHÓM - GROUPBOX
Là điều khiển được dùng để nhóm các điều khiển khác. Thuộc tính:- Text: Chuỗi trên tiêu đề của GroupBox.
TD (hình bên)
![Page 89: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/89.jpg)
89
ĐIỀU KHIỂN PICTURE BOX
Được sử dụng để hiển thị hình ảnh.Thuộc tính- Image: Xác định hình ảnh cần hiển thị.- SizeMode: xác định cách thức ảnh được hiển thị (AutoSize, CenterImage, Normal, StretchImage)Sự kiện- SizeModeChange: xảy ra khi thuộc tính SizeMode thay đổi giá trị.
![Page 90: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/90.jpg)
90
ĐIỀU KHIỂN IMAGELIST
Dùng để lưu các hình ảnh và cho phép chúng hiển thị ở các điều khiển khác nhau.Thuộc tính- Images: tập hợp các ảnh của ImageList.- ImageSize: kích thước của các ảnh có trong ImageList.Phương thức- Draw: vẽ một ảnh xác định.
![Page 91: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/91.jpg)
91
ĐIỀU KHIỂN TIMER
Là điều khiển đáp ứng lại sự trôi đi của thời gian.Thuộc tính- Enabled: cho phép điều khiển thời gian thực thi.- Interval: Khoảng thời gian giữa 2 sự kiện.Phương thức- Start: khởi động điều khiển thời gian.- Stop: ngưng điều khiển thời gian.Sự kiện- Tick: Xảy ra sau 1 khoảng thời gian được chỉ trong Interval
![Page 92: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/92.jpg)
92
ĐIỀU KHIỂN TIMER - Thí dụ
Thiết kế ứng dụng cho phép hiển thị đồng hồ số.
Thuộc tính: Enable = TrueInterval=1000
Xử lý sự kiện TickPrivate Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.TickMe.lblTG.Text = CStr(Now) ‘ Now: hàm lấy thời gian
End Sub
![Page 93: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/93.jpg)
93
Bài 4: Các điều khiển khác
Hộp thoại (Dialog). Hộp thông điệp (MessageBox)
![Page 94: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/94.jpg)
94
HỘP THOẠI (DIALOGBOX)
Là 1 cửa sổ tạm chứa các điều khiển khác để tương tác giữa ứng dụng và người sử dụng.Đặc điểm- Kích thước của hộp thoại không thể thay đổi.- Hộp thoại không chứa menu.Các loại hộp thoại- Modal: hiển thị thông điệp & người dùng không thể chuyển đổi sang các cửa sổ khác khi hộp thoại còn tồn tại.- Modaless: ta có thể chuyển đổi sang các cửa sổ khác dễ dàng.
![Page 95: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/95.jpg)
95
OPEN FILE DIALOG
Đây là hộp thoại mở tập tin.
![Page 96: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/96.jpg)
96
FONT DIALOG
Đây là hộp thoại cho phép chọn Font.
![Page 97: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/97.jpg)
97
COLOR DIALOG
Đây là hộp thoại cho phép chọn màu từ bảng màu của hệ thống.
![Page 98: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/98.jpg)
98
HỘP THÔNG ĐIỆP - MESSAGEBOX
Dùng để hiển thị thông báo.Cách sử dụng:
MessageBox.Show(“[Thông điệp]”)Ta có thể sử dụng Show như 1 hàm, kết quả trả về (DialogResult) của hàm có thể có các 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: Thông điệp cần hiển thị.s2: Tiêu đề của hộp thông điệp.
![Page 99: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/99.jpg)
99
HỘP THÔNG ĐIỆP - MESSAGEBOX
MessageBoxButton: AbortRetryInorge, OK, OKCancel, RetryCancel, YesNo, YesNoCancel.MesageBoxIcon: Asterisk, Error, Exclamation, Hand, Information, None, Question, Stop, Warning. TD:
MessageBox.Show("Chào mừng bạn làm quen với hộp _
thông điệp", "Thông báo", MessageBoxButtons.YesNoCancel, _MessageBoxIcon.Information)
![Page 100: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/100.jpg)
100
Bài 5: Menu
Tạo menu với MainMenu.Tạo menu ngữ cảnh với ContextMenu.Xử lý sự kiện của các mục của menuTạo menu bằng mã lệnh
![Page 101: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/101.jpg)
101
MENU - KHÁI NIỆM
Menu là một loại điều khiển trong đó người dùng có thể lựa chọn các mục để thực thi từ một danh sách cho trước.
Phân loại- Menu thả xuống (Drop-Down Menu): là
dạng menu thông dụng nhất.- Menu bật ra (Pop-Up Menu,
ContextMenu): thường hiển thị khi ta ấn nút phải chuột.
![Page 102: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/102.jpg)
102
DROPDOWN MENU
Tạo menu nhờ vào điều khiển MainMenu.Các bước tạo menu:- Tạo menu mới và menu bar. - Thêm các mục menu con vào menu đã có. - Sửa đổi lại các thuộc tính của menu và các mục menu. - Xử lý sự kiện Click của các mục menu con.
![Page 103: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/103.jpg)
103
DROPDOWN MENU - THÍ DỤ
![Page 104: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/104.jpg)
104
ĐIỀU KHIỂN MAIN MENU
MainMenu: hiển thị 1 menu khi ứng dụng được thực thi. Các menu con của MainMenu gl Menu.MenuItem: mục cụ thể của 1 Menu xác định.Thuộc tính- IsParent: True nếu mục menu này là cha của các mục menu con nào đó.- MenuItems: tập hợp các mục menu con.Phương thức- MergeMenu: ghép các mục menu con của 1 menu xác định vào menu hiện hành.
![Page 105: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/105.jpg)
105
MENUITEM
Thuộc tính- Checked: là True nếu có dấu trước mục menu con.- Index: vị trí của menu con trong 1 menu xác định.- Shortcut: xác lập phím tắt.- Parent: tên (Name) của menu cha.- Text: chuỗi hiển thị trên mục menu.Sự kiện- Click: Xảy ra khi người dùng Click chọn mục menu.
![Page 106: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/106.jpg)
106
Private Sub MenuItem4_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MenuItem4.Click
MessageBox.Show("Bạn chọn File/Save", "Thông báo")End SubPrivate Sub MenuItem5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MenuItem5.Click EndEnd Sub
![Page 107: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/107.jpg)
107
CONTEXT MENU
Là điều khiển cho phép người dùng truy cập các mục trên menu nhờ thao tác nhấp chuột phải.Sau khi ContextMenu được tạo ra, chúng sẽ được gắn với một điều khiển khác nhờ vào thuộc tính ContextMenu của điều khiển đó.TD tạo ContextMenu & thiết lập thuộc tính ContextMenu của Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e _As System.EventArgs) Handles _
MyBase.LoadMe.ContextMenu = ContextMenu1
End Sub
![Page 108: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/108.jpg)
108
TẠO MENU BẰNG MÃ LỆNH
Ta có thể thêm hay xóa đi một mục menu (MenuItem) của 1 menu nào đó nhờ vào các phương thức Add & Remove.TD: Xử lý sự kiện Load của Form bằng đoạn mã lệnh tạo 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 MenuItemNewItem.Text = "&New"
OpenItem.Text = "&Open..." FileMenu.Text = "&File" FileMenu.MenuItems.Add(NewItem) FileMenu.MenuItems.Add(OpenItem) myMainMenu.MenuItems.Add(FileMenu) Me.Menu = myMainMenuEnd Sub
![Page 109: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/109.jpg)
109
TD xóa 1 mục menuDim kq As New DialogResultkq = MessageBox.Show("Bạn muốn xóa mục New không?", "Xóa", _
MessageBoxButtons.YesNo)If kq = DialogResult.Yes Then FileMenu.MenuItems.RemoveAt(0)End If
![Page 110: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/110.jpg)
110
KẾT QUẢ THÍ DỤ
![Page 111: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/111.jpg)
111
Chương 3: Các kiểu dữ liệu & Bẫy lỗi trong
VB.NET
Cách thức sử dụng các kiểu dữ liệu.Một số kiểu mở rộng: liệt kê, mảng, tập hợp.Bẫy lỗi (Error Handler) trong VB.NET.
![Page 112: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/112.jpg)
112
Bài 1: Sử dụng các kiểu dữ liệu
Các kiểu dữ liệu của .NET Framework.Một số hàm thao tác trên các giá trị các kiểu cũng như các hàm xử lý chuỗi
![Page 113: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/113.jpg)
113
CÁC KIỂU CỦA .NET
Chia làm các loại: số nguyên, số thực, luận lý, ký tự.Kiểu số nguyên:
Kiểu .NET Kiểu VB.NET Miền g. trị
System.Byte Byte 0..255
System.Int16
Short -32768..32767
System.Int32
Integer -231..231-1
System.Int64
Long -263..263-1
![Page 114: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/114.jpg)
114
Kiểu số thực
CÁC KIỂU CỦA .NET
Kiểu .NET
Kiểu VB.NET
Mô tả
Độ chính xác
Miền g. trị
System.Single
Single 32 bit 7 ký số +/-1.4*10-45.. +/-3.4*1038
System.Double
Double 64 bit 15-16 ký số
+/-5.0*10-324.. +/-1.7*10308
System.Decimal
Decimal 128 bit
28 ký số +/-1.0*10-28.. +/-7.9*1028
![Page 115: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/115.jpg)
115
Kiểu luận lý: Kiểu của .NET là System.Boolean ứng với kiểu Boolean của VB.NET với 2 giá trị là True và False.Kiểu ký tự: Kiểu của .NET là System.Char ứng với kiểu Char của VB.NET (16 bit - Unicode).Trong VB.NET một hằng ký tự được đặt trong cặp dấu ngoặc kép với ký tự c đằng sau.TD: Dim a As Char
a = “B”c
CÁC KIỂU CỦA .NET
![Page 116: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/116.jpg)
116
Kiểu chuỗi ký tự: Kiểu .NET là System.String ứng với String trong VB.NET.Trong VB.NET, hằng chuỗi được đặt trong cặp dấu ngoặc kép.TD: Dim s As String
s = “Tin Học K30”Kiểu đối tượng: Kiểu .NET là System.Object tương ứng với Object trong VB.NET. Đây là kiểu gốc cho tất cả các kiểu trong VB.NET.TD: Dim o As Object
o = 5o = New System.Windows.Forms.Form()
CÁC KIỂU CỦA .NET
![Page 117: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/117.jpg)
117
KIỂU DỮ LIỆU - HÀM THÀNH VIÊN
Parse: hàm có ở các kiểu giá trị. Hàm này cho phép tạo ra một giá trị số từ một chuỗi.TD: Dim d As Integer
d = Integer.Parse(“12345”) ‘ d là 12345
System.Console.WriteLine(CStr(d))ToString: chuyển đổi giá trị sang dạng chuỗi.TD: Dim a As Integer, s As String
a = 1234s = a.ToString()System.Console.WriteLine(s)
![Page 118: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/118.jpg)
118
Các hàm xử lý chuỗi
KIỂU DỮ LIỆU - HÀM THÀNH VIÊN
Hàm Ý nghĩa
Insert Chèn chuỗi cho trước vào chuỗi hiện hành
Remove Xóa một số ký tự được chỉ định.
Replace Thay thế chuỗi con trong chuỗi gốc bằng một chuỗi khác
SubString Trả về một chuỗi con từ chuỗi cho trước
ToLower, ToUpper
Chuyển chuỗi sang chữ thường (hoa)
Trim Loại bỏ những ký tự không cần thiết trong chuỗi
![Page 119: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/119.jpg)
119
CÁC HÀM XỬ LÝ CHUỖIImports System.ConsoleModule 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 SubEnd Module
![Page 120: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/120.jpg)
120
Bài 2: Kiểu liệt kê, mảng & tập hợp
Kiểu liệt kê (enum)Khai báo và sử dụng mảng (array)Tập hợp trong VB.NET (collection)
![Page 121: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/121.jpg)
121
KIỂU LIỆT KÊ
Cho phép định nghĩa một tập giá trị hằng để gợi nhớ.Nếu không chỉ ra giá trị của Enum, giá trị đầu tiên là 0.
TD1: Khai báo kiểu liệt kê cho các ngày trong tuần.
TD2: Không chỉ ra giá trị của Enum
Enum WeekMonday = 1Tuesday = 2Wednesday = 3Thursday = 4Friday = 5Saturday = 6Sunday = 7
End Enum
Public Enum Numbers zero ' = 0 one ' = 1 two ‘ = 2End Enum
Dim a As NumbersWriteLine((a.two*2))
![Page 122: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/122.jpg)
122
MẢNG
Mảng: tập hợp các phần tử có cùng kiểu.Khai báo mảng 1 chiều: Dim <Tên biến>(<Kích thước>) As <Kiểu phần tử>TD: Khai báo mảng có 31 số nguyên từ 0 đến 30
Dim a(30) As Integer
Ta có thể không chỉ ra kích thước mảng, nhưng sau đó ta phải khởi tạo mảng.TD: Dim a() As Integer
a = New Integer() {1,2,3,4}Dim f As IntegerFor Each f In a Write(f)
Next
![Page 123: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/123.jpg)
123
Khai báo tương tự mảng 1 chiều nhưng có thêm kích thước của các chiều còn lại.TD:‘ Khai báo ma trận 3 dòng 5 cộtDim m(2, 4) As Single‘ Khai báo và khởi tạo ma trậnDim intArrays(,) As Integer = {{1, 2, 3}, {4, 5, 6}}‘ Hiển thị theo dạng ma trậnDim 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
MẢNG NHIỀU CHIỀU
![Page 124: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/124.jpg)
124
TẬP HỢP (COLLECTION)
Là một lớp đặc biệt chứa một nhóm các đối tượng nào đó.Kgt System.Collection định nghĩa nhiều lớp thành viên: ArrayList, Stack, HashTable, BitArray, Queue…Lớp ArrayList: cung cấp các chức năng cơ bản của 1 tập hợp, có thể được sử dụng cho nhiều mục đích khác nhau.Khai báo & khởi tạo đối tượng ArrayList Dim myList As New System.Collections.ArrayList() ‘ Khởi tạo đối tượng myList có 5 phần tử Dim myList As New System.Collections.ArrayList(5)
![Page 125: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/125.jpg)
125
Phương thức- Add: Thêm phần tử vào tập hợp- Remove: Xóa phần tử khỏi tập hợp.- RemoveAt: Xóa tại vị trí xác định trong tập hợpTD:
Dim f As Integer, r As New System.Collections.ArrayListFor f = 1 To 5
r.Add(f)Nextr.Remove(3) ‘ Xóa 3
For Each f In rWriteLine(f)
Next
ARRAY LIST
![Page 126: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/126.jpg)
126
ArrayList có thể chứa các phần tử thuộc các kiểu khác nhau.TD:
Dim f As Integer, r As New System.Collections.ArrayList For f = 1 To 5 r.Add(f) Next
r.Add(“Khoa Công Nghệ Thông Tin") r.Add(“Khoa Kinh Tế & QTKD")
Dim f1 As Object For Each f1 In r If TypeOf f1 Is String Then WriteLine(f1) ‘ Hiển thị giá trị là chuỗi
End If Next
ARRAY LIST
![Page 127: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/127.jpg)
127
Bài 3: Xử lý lỗi trong VB.NET
Phân loại các lỗi trong ứng dụng.Bẫy các lỗi thực thi (runtime error).Điều khiển ErrorProvider.
![Page 128: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/128.jpg)
128
PHÂN LOẠI LỖI
Có 3 loại lỗi (error)- Lỗi cú pháp (syntax error)- Lỗi thực thi (runtime error)- Lỗi logic (logic error)Ngoại lệ (Exception): là lỗi xảy ra lúc thực thi chương trình (thuộc loại runtime error).Khi có ngoại lệ xảy ra, nếu không có hành động thích hợp chương trình sẽ bị ngắt.
Cần phải có cơ chế xử lý ngoại lệ
![Page 129: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/129.jpg)
129
EXCEPTION
Một số ngoại lệ: ArithmeticException, InvalidOperationException, OverflowException, TypeLoadException, IndexOutOfRangeException, InvalidCastException, NullReferenceException, SecurityException…Ngoài ra, người dùng có thể định nghĩa ngoại lệ cho riêng mình (phải kế thừa từ những lớp trên).Thuộc tính của Exception:- Message: Chuỗi mô tả thông tin về ngoại lệ.- Source: tên ứng dụng hay đối tượng gây ra lỗi.
![Page 130: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/130.jpg)
130
XỬ LÝ NGOẠI LỆ
Ngoại lệ có thể được xử lý nhờ vào các từ khóa: Try, Throw, Catch, Finally.Cấu trúc mô hình xử lý ngoại lệ Try
‘ Đoạn mã lệnh có thể gây lỗi Catch e1 As Exception
‘ Nếu lỗi thuộc loại e1, đoạn mã này thực thi ‘ Ngược lại, khối Catch kế được thực thi
Catch en As Exception
‘ Nếu lỗi thuộc loại en, đoạn mã này thực thi Finally
‘ Đoạn mã này luôn thực thi, dù ngoại lệ có ‘ xảy ra hay không? Phần này không bắt buộc
End Try
![Page 131: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/131.jpg)
131
XỬ LÝ NGOẠI LỆ - THÍ DỤ
TD: Ngoại lệ không thể đổi từ chuỗi 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 SubEnd Module
![Page 132: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/132.jpg)
132
XỬ LÝ NGOẠI LỆ - THÍ DỤ
![Page 133: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/133.jpg)
133
ĐIỀU KHIỂN ERRORPROVIDER
Sử dụng để hiển thị icon lỗi khi người dùng thao tác lỗi trên một điều khiển nào đó trên form.Thuộc tính- BlinkRate: xác định tốc độ nhấp nháy của icon lỗi.- BlinkStyle: xác định cách thức mà icon nhấp nháy trên điều khiển(AlwaysBlink, BlinkDifferentError, & NeverBlink).- Icon: đường dẫn chỉ đến icon lỗi.Phương thức- GetError: nhận về chuỗi thông báo lỗi.- SetError: xác lập chuỗi thông báo lỗi trên một điều khiển xác định.
![Page 134: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/134.jpg)
134
Xử lý ngoại lệ khi người dùng nhập không phải 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 phải là giá trị số") End Try
ERRORPROVIDER - THÍ DỤ
![Page 135: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/135.jpg)
135
ERRORPROVIDER - THÍ DỤ
![Page 136: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/136.jpg)
136
Chương 4: Lập Trình Hướng Đối Tượng với
VB.NET
Thuộc tính (Properties)Đa hình (Polymorphism)Thừa kế (Inheritance)Giao diện (Interface)
![Page 137: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/137.jpg)
137
THUỘC TÍNH (PROPERTIES)
Thuộc tính là những đặc trưng của các đối tượng của 1 lớp.Thuộc tính có thể được tạo nhờ:- Từ khóa Public.- Phương thức Property.TD: Lớp Con người (Person)Class Person
Public strName As StringPublic iAge As IntegerPublic iWeight As Integer
End ClassVới cách truy cập Public, thuộc tính có thể được truy xuất không giới hạn.
![Page 138: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/138.jpg)
138
Nếu ta muốn hạn chế truy cập, ta có thể sử dụng từ khóa Private (data hiding).Trong TD trên, ta có thể định nghĩa thuộc tính Name:
Private strName As StringPublic Property Name() As String
SetstrName = Value
End SetGet
Name = strNameEnd Get
End Property
THUỘC TÍNH (PROPERTIES)
![Page 139: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/139.jpg)
139
Khối Set: gán trị cho thuộc tính.Khối Get: lấy giá trị của thuộc tính.Thuộc tính chỉ đọc (ReadOnly): khai báo khối Get (không có khối Set) hay có thể khai báo cách tường minh trong khối Get nhờ từ khóa ReadOnly.TD: Thuộc tính tuổi của lớp Con người là chỉ đọc.
Private iAge As IntegerPublic ReadOnly Property Age() As Integer
GetAge = iAge
End GetEnd Property
THUỘC TÍNH (PROPERTIES)
![Page 140: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/140.jpg)
140
Thuộc tính chỉ ghi (WriteOnly): khai báo khối Set (không có khối Get) hay có thể khai báo cách tường minh trong khối Set nhờ từ khóa WriteOnly.TD: Trọng lượng của lớp Con người là chỉ ghi.
Private iAge As IntegerPublic WriteOnly Property Weight () As
IntegerSet
iAge = ValueEnd Set
End Property
THUỘC TÍNH (PROPERTIES)
![Page 141: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/141.jpg)
141
ĐA HÌNH (POLYMORPHISM)
Đa hình: Khả năng các phương thức có cùng một tên nhưng các tham số của chúng là khác nhau.Nạp chồng phương thức (method overload): khai báo nhiều phương thức có cùng một tên (khác tham số) trong một lớp.TD: Tạo lớp Điểm trong không gian 2 chiều gồm 2 thuộc tính là tọa độ X & tọa độ Y.- 2 phương thức xây dựng: một không có tham số (gán X, Y, là 0), một có tham số (cặp (X1,Y1) có sẵn để gán cho X,Y).- Phương thức hiển thị tọa độ của điểm lên màn hình.- 2 phương thức tính khoảng cách từ điểm hiện thời đến 1 điểm khác, một không tham số (tính kc đến gốc tọa độ), một có tham số là một điểm khác (tính kc đến điểm này).
![Page 142: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/142.jpg)
142
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 = 0End Sub
Public Sub New(ByVal X1 As _ Integer, ByVal Y1 As Integer) Me.X = X1 Me.Y = Y1End Sub
Public Sub Display() WriteLine("({0},{1})", Me.X, Me.Y)End Sub
Public Function _ Distance() As Single Return Sqrt(Me.X ^ 2 + Me.Y ^ 2)End Function
![Page 143: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/143.jpg)
143
Public Function _ Distance(ByVal p As Point) As Single Return Sqrt((Me.X - p.X) ^ 2 + _ (Me.Y - p.Y) ^ 2)End FunctionEnd Class ‘ Kết thúc ĐN lớp Point
‘ Hàm mainSub 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
Lưu ý:- Sử dụng không gian tên: System.Console & System.Math.
![Page 144: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/144.jpg)
144
THỪA KẾ (INHERITANCE)
Thừa kế là khả năng một lớp (lớp con) thừa hưởng những thuộc tính & các hành động từ 1 lớp đã có (lớp cha).VB.NET không hỗ trợ đa thừa kế.Sử dụng từ khóa Inherits khi định nghĩa lớp con.TD: Thiết kế lớp điểm trong không gian 3 chiều thừa kế từ lớp điểm trong kg 2 chiều.Class Point3D
Inherits Point ' Thừa kế từ lớp 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
![Page 145: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/145.jpg)
145
THỪA KẾ - GHI ĐÈ PHƯƠNG THỨC
Lớp con có thể ghi đè các phương thức của lớp cha.Phương thức của lớp cha phải sử dụng từ khóa Overridable, phương thức của lớp con sử dụng từ khóa Overrides.Từ khóa MyBase: truy xuất các thuộc tính hay phương thức của lớp cha từ lớp con.TD: Lớp điểm trong kg 3 chiều cần ghi đè phương thức hiển thị tọa độ điểm lên màn hình.
Public Sub New() MyBase.New() Me.Z = 0End SubPublic Sub New(ByVal x1 As _Integer, ByVal y1 As Integer, _
ByVal z1 As Integer)
MyBase.New(X1, Y1) Me.Z = z1End SubPublic Overrides Sub Display() WriteLine("Toa do p1 la _ ({0},{1},{2})", Me.X, Me.Y, Me.Z) End Sub
![Page 146: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/146.jpg)
146
Sub Main() Dim p1, p2 As Point3D p1 = New Point3D(1, 2, 3) p1.Display() p2 = New Point3D p2.Display()End Sub
Kết quả chương trình
THỪA KẾ - GHI ĐÈ PHƯƠNG THỨC
![Page 147: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/147.jpg)
147
GIAO DIỆN - INTERFACE
Nếu một lớp cần thể hiện tính đa thừa kế, ta sử dụng giao diện (Interface).Giao diện có các thuộc tính & các phương thức riêng, tuy nhiên chúng không có mã lệnh để cài đặt.Lớp sử dụng giao diện cần phải cài đặt (Implements) các phương thức đã định nghĩa trong giao diện.TD:
Public Interface Interface1 Sub A() Function B(ByVal C As _ Integer) As IntegerEnd Interface
Class Tool Implements Interface1Public Sub A() Implements Interface1.A ‘Cài đặt AEnd Sub…End Class
![Page 148: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/148.jpg)
148
Chương 5: Cơ sở dữ liệu & VB.NET
Một số khái niệm về cơ sở dữ liệuNgôn ngữ hỏi SQL (Structure Query Language)Giới thiệu về ADO.NET
![Page 149: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/149.jpg)
149
Bài 1: Một số khái niệm về cơ sở dữ liệu
Cơ sở dữ liệu (Database)Bảng (table) & trường (field)KhóaMối kết hợp (relationship)
![Page 150: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/150.jpg)
150
CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu là một kho chứa thông tin.Flat files: tất cả dữ liệu chứa trong 1 tập tin duy nhất. TD: Bảng tính Excel:
Đặt hàng
Ngày đặt
Hàng hóa Số lượng
Đơn giá
Tên KH Địa chỉ KH
1000 02/03/06
Bột giặt Omo 5 (kg) 15000 NV Cường 01 THĐ
1000 02/03/06
Kem đánh răng P/S
10 (hộp) 10000 NV Cường 01 THĐ
1000 02/03/06
Dầu gội Clear 10 (chai)
10000 NV Cường 01 THĐ
1001 03/03/06
Bột giặt Omo 15 (kg) 15000 Trần Văn Ba
02 LTT
1001 03/03/06
Trà chanh IceTea 10 (gói) 5000 Trần Văn Ba
02 LTT
![Page 151: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/151.jpg)
151
Bất lợi:- Lãng phí không gian lưu trữ.- Có nhiều thông tin trùng.- Rắc rối trong bảo trì.Cơ sở dữ liệu quan hệ (relational database): tập hợp các nhóm thông tin khác nhau gl bảng (table) được kết hợp lại theo cách thức nào đó. TD: Trong TD trên cơ sở dữ liệu có thể gồm 3 bảng:- KhachHang(MaKH, TenKH, DiachiKH)- HangHoa(MaHang, TenHang, Dongia, Ghichu)- DatHang(STTDH, MaKH, MaHang, Soluong)
CƠ SỞ DỮ LIỆU
![Page 152: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/152.jpg)
152
Bảng (table): chứa các mẩu tin là các mẩu dữ liệu riêng rẽ trong phân nhóm dữ liệu.Mẩu tin (record): chứa các trường (field), mỗi trường thể hiện một bộ phận dữ liệu của mẩu tin.TD bảng KhachHang:
CƠ SỞ DỮ LIỆU - CÁC KHÁI NIỆM
MaKH TenKH Diachi
Mẩu tin 1 KH01 NV Cường 01 THĐ
Mẩu tin 2 KH02 Trần Văn Ba 02 LTT
Trường 1 Trường 2 Trường 3
![Page 153: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/153.jpg)
153
Khóa chính (primary key): là một hay nhiều trường mà chúng xác định duy nhất mỗi mẩu tin trong bảng.TD Khóa chính bảng KhachHang là MaKH.
HangHoa là MaHang. DatHang là STTDH, MaKH,
MaHangKhóa ngoại (foreign key): là một hay nhiều trường ở một bảng nhưng chúng là khóa chính ở một bảng khác.TD trong bảng DatHang ta có các khóa ngoại là MaKH (là khóa chính của KhachHang), MaHang (khóa chính của HangHoa).
CƠ SỞ DỮ LIỆU - KHÓA
![Page 154: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/154.jpg)
154
Mối kết hợp (relationship): sự liên kết giữa các bảng.1-1: một mẩu tin trong 1 bảng xác định 1 mẩu tin trong bảng khác.1-n: mỗi mẩu tin trong 1 bảng xác định nhiều mẩu tin trong bảng khác.TD:
CƠ SỞ DỮ LIỆU - MỐI KẾT HỢP
![Page 155: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/155.jpg)
155
n-n: nhiều mẩu tin trong 1 bảng liên kết với nhiều mẩu tin trong bảng khác.Mối kết hợp này cần thêm bảng thứ 3 lưu các quan hệ giữa 2 bảng.TD: CSDL về
người sử dụng:
CƠ SỞ DỮ LIỆU - MỐI KẾT HỢP
![Page 156: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/156.jpg)
156
Toàn vẹn tham chiếu (referential integrity): xác định mỗi khi dữ liệu trong các bảng bị thay đổi (thêm, sửa, xóa) các mối kết hợp vẫn không bị ảnh hưởng.- Cascade update: Nếu có sự thay đổi giá trị của 1 khóa, giá trị của khóa đó ở các bảng khác cũng thay đổi theo.- Cascade delete: Nếu một mẩu tin bị xóa, tất cả các mẩu tin có liên quan trong cơ sở dữ liệu bị xóa theo.Thuận lợi: Không cần viết mã lệnh để cập nhật lại cơ sở dữ liệu mỗi khi có sự thay đổi trên khóa chính.Tuy nhiên chúng vẫn mặt hạn chế.
CƠ SỞ DỮ LIỆU - TOÀN VẸN THAM CHIẾU
![Page 157: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/157.jpg)
157
Bài 2: Ngôn ngữ hỏi SQL
Structure Query Language (SQL)Lựa chọn dữ liệu với câu lệnh SelectCập nhật dữ liệu với UpdateChèn thêm dữ liệu với InsertXóa dữ liệu với Delete
![Page 158: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/158.jpg)
158
STRUCTURE QUERY LANGUAGE
SQL là ngôn ngữ CSDL chuẩn.SQL gồm nhiều phần: Ngôn ngữ định nghĩa dữ liệu, ngôn ngữ thao tác dữ liệu trao đổi, tạo view, cấp quyền…Câu lệnh thường sử dụng: Select, Update, Insert, Delete.
![Page 159: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/159.jpg)
159
SQL - CÂU LỆNH SELECT
Được sử dụng để lựa chọn dữ liệu theo một số điều kiện nào đó.Mệnh đề Select TD: Với CSDL người dùng- Tìm kiếm tất cả các người dùng
Select UserName From Users- Nếu muốn tên các người dùng không trùng nhau:
Select Distinct UserName From RoleUser- Ký tự * được dùng chỉ tất cả các trường
Select * From Users- Sau Select có thể là một biểu thức
Select RoleID*10, RoleName From Roles
![Page 160: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/160.jpg)
160
Mệnh đề Where: dùng để lọc & kết nối dữ liệu.TD:- Tìm các tên quyền có mã >3
Select RoleName From Roles Where RoleID>3- Tìm các bộ (người dùng, tên quyền) tương ứng với mã quyền >3
Select UserName, RoleName From Roles, RoleUser
Where RoleUser.RoleID = Roles.RoleID AND Roles.RoleID > 3
Các phép toán:- So sánh: >, >=, <, <=, =, <>, BETWEEN…AND- Logic: AND, NOT, ORTD: Tìm các tên quyền có mã từ 2 đến 4
Select RoleName From RolesWhere RoleID BETWEEN 2 AND 4
SQL - CÂU LỆNH SELECT
![Page 161: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/161.jpg)
161
Phép toán LIKE trên chuỗi: đối chiếu mẫu.- %: ứng với chuỗi con bất kỳ.- _:ứng với 1 ký tự bất kỳ.
TD: - Tìm các tên quyền có ký tự cuối là e:Select RoleName From Roles Where RoleName LIKE “%e”
- Tìm các tên người dùng có ký tự thứ 2 là hSelect UserName From Users Where UserName LIKE “_h%”
Mệnh đề sắp thứ tự Order By- ASC: thứ tự tăng.- DESC: thứ tự giảm.
TD: Lựa chọn các tên quyền có mã >1 và sắp xếp chúng theo thứ tự tăng.
Select RoleName From Roles Where RoleID>1 Order By RoleName ASC
SQL - CÂU LỆNH SELECT
![Page 162: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/162.jpg)
162
Dùng để thêm 1 hay nhiều dòng (mẩu tin) vào một bảng đã có.TD:
- Thêm người dùng nqtoan vào bảng UserInsert Into Users Values(“nqtoan”, ”abc”)
- Ta có thể chỉ rõ tên trường & giá trị cần xen.Insert Into Users(Password, UserName) Values(“abc”, “nqtoan”)
- Thêm cho tất cả người dùng quyền mới có mã là 4Insert Into RoleUser
Select UserName As UserName, 4 As RoleID
From Users
SQL - CÂU LỆNH INSERT
![Page 163: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/163.jpg)
163
Update: Cho phép thay đổi giá trị các dòng (mẩu tin).TD:- Sửa lại mật khẩu của người dùng lhbao là abc
Update UsersSet Password = “abc”Where UserName = “lhbao”
Delete: Xóa các dòng (mẩu tin) thỏa điều kiện.TD:- Xóa tất cả các dòng (mẩu tin) của bảng RoleUser
Delete From RoleUser- Xóa tất cả các quyền của người dùng lhbao
Delete From RoleUserWhere UserName = “lhbao”
SQL - UPDATE & DELETE
![Page 164: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/164.jpg)
164
Bài 3: Giới thiệu về ADO.NET
OLE DB, ADO, ADO.NETDataset.NET Data Providers- Đối tượng Command.- Đối tượng DataReader.- Đối tượng DataAdapter.DataBinding
![Page 165: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/165.jpg)
165
OLEDB
OLEDB: Object Linking and Embedding for DataBase: giao diện cơ sở dữ liệu được sử dụng để truy cập các loại dữ liệu khác nhau.Mô hình:
OLEDB
RelationalDatabase
Non-RelationalDatabase
![Page 166: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/166.jpg)
166
ACTIVEX DATA OBJECT (ADO)
Tập hợp các đối tượng để truy cập cơ sở dữ liệu thông qua trình cung cấp OLEDB.Mô hình
OLEDB
RelationalDatabase
Non-RelationalDatabase
ADO
![Page 167: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/167.jpg)
167
ADO.NET
Là cải tiến của ADO.Sử dụng XML để vận chuyển dữ liệu.
Thành phần cơ bản của ADO.NET:- DataSet
- .NET data provider: gồm các thành phần Connection, Command, DataReader, DataAdapter.
WinForm
DataSet
DataObject
DataSet DatabaseXML
![Page 168: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/168.jpg)
168
DATASET
Là đối tượng lưu dữ liệu được truy xuất từ cơ sở dữ liệu.Mô hình:
Tạo Dataset: tạo đối tượng của lớp Dataset.TD: ‘ Tạo Dataset có tên là EmpInfor
Dim empDS As New Dataset(“EmpInfor”)‘ Không cần chỉ tên của DatasetDim empDS As New Dataset()
Client ServerDataset
Gởi Dataset tới Client
Gởi dữ liệu tới Dataset
Client sửa đổi
Dataset
Cập nhật Dataset lên
Server
![Page 169: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/169.jpg)
169
Thuộc tính- Tables: tập các bảng của Dataset.- Item: một bảng xác định trong Dataset.Phương thức:- Add: thêm một bảng.- RemoveAt: xóa một bảng ở vị trí xác định.DataTable: là bảng lấy về từ CSDL.- DataColumn: các cột trong DataTable.- DataRow: dòng dữ liệu thật sự.
DATASET
![Page 170: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/170.jpg)
170
DATATABLE, DATACOLUMN, DATAROW
DataTable - Thuộc tính- Columns: tập hợp các cột- Dataset: thuộc về Dataset nào- Rows: tập hợp các dòngDataColumn - Thuộc tính- ColumnName: tên của cột- Datatype: kiểu dữ liệu- Table: cột thuộc Table nàoDataRow - Thuộc tính- Item: giá trị ở một cột xác định.- Table: dòng thuộc DataTable nào
![Page 171: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/171.jpg)
171
.NET DATA PROVIDERS
Cho phép tương tác giữa CSDL & dataset.Có thể truy cập, sửa đổi, dữ liệu nhờ đối tượng Connection & Command.Đối tượng Connection: thiết lập một nối kết dữ liệu giữa ứng dụng & CSDL.
SQL .NET Data Provider OLE DB .NET Data Provider
System.Data System.Data
System.Data.SqlClient System.Data.OleDb
![Page 172: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/172.jpg)
172
Thuộc tính:- ConnectionString: chuỗi nối kết đến CSDL.- Database: CSDL muốn nối kết.TD: - SQL .NET Data Provider
Dim conn As SqlConnectionconn = New SqlConnection _ (“server=www”;uid=lhbao;pwd=abc;database=pubs”)
- OLE DB .NET Data ProviderDim conn As OleDb.OleDbConnectionconn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; _
Data Source=D:\User.mdb“)- Provider: trình cung cấp CSDL. Một số provider:
Access: Microsoft.Jet.OLEDB.4.0SQL Server: SQLOLEDB
- Data Source: CSDL.- User Id: tên người dùng.- pwd: mật khẩu
.NET DATA PROVIDERS
![Page 173: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/173.jpg)
173
THÍ DỤ .NET CONNECTION
Tạo lớp kết nối đến CSDL Access với lúc khởi tạo đối tượng cần truyền tham số là đường dẫn 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 SubProtected Overrides Sub Finalize()
conn.Close() conn = NothingEnd SubEnd Class
![Page 174: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/174.jpg)
174
ĐỐI TƯỢNG COMMAND
Tham chiếu đến CSDL nhờ việc thực thi một câu lệnh (SQL, Stored Procedure).2 loại Command: - SQLCommand: SQL Server.- OleDbCommand: các loại CSDL của các HQTCSDL khác nhau (OleDb.OleDbCommand)Thuộc tính- Connection: nối kết CSDL.- CommandType: kiểu Command được chỉ ra trong CommandText; có 3 loại:
+ Text+ Stored Procedure+ Table Direct
Thực thi Command:- ExecuteNonQuery: thực thi câu truy vấn hành động.- ExecuteScalar: kết quả câu truy vấn là một giá trị.- ExecuteReader: thực thi câu truy vấn, kq là một DataReader.
![Page 175: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/175.jpg)
175
DATAREADER
Chứa dữ liệu chỉ đọc (readonly) & chỉ cho phép di chuyển tới (forwardonly).Gồm SQLDataReader & OleDbDataReader.Thuộc tính:- FieldCount: Số trường.- IsClosed: DataReader có đóng hay ko?Phương thức:- Close: đóng DataReader.- GetName: lấy tên 1 cột xđ.- GetValue: giá trị của 1 cột xđ.- Read: đọc tuần tự từng dòng.DataReader được khởi tạo nhờ gọi thực thi phương thức ExecuteReader của đối tượng Command.TD: Dim myReader As SqlDataReader
myReader = myCommand.ExecuteReader
![Page 176: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/176.jpg)
176
DATAADAPTER
Sử dụng để cập nhật dữ liệu từ nguồn dữ liệu đến Dataset & ngược lại.Gồm SqlDataAdapter & OleDbDataAdapter.Phương thức- Fill: đồng bộ dữ liệu giữa Dataset & nguồn dữ liệu.
![Page 177: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/177.jpg)
177
DATABINDING
Ràng buộc giá trị trong nguồn dữ liệu với điều khiển của Winform.Simple Data Binding: 1 giá trị từ dataset ràng buộc với 1 điều khiển.TD: Cột Salary của bảng Employes ràng buộc với thuộc tính Text củaTextBox txtSa
Dim t As DataTable = Dataset.Tables(“Employes”)txtSa.DataBindings.Add(“Text”, t, ”Salary”)
Complex DataBinding: một điều khiển ràng buộc toàn bộ dataset. Chỉ có điều khiển DataGrid & ComboBox hỗ trợ loại này.TD: Ràng buộc toàn bộ dữ liệu của trường DepartmentName với ComboBox cboDPName
Dim t As DataTable = Dataset.Tables(“Daparment”)cboDPName.DataSource = tcboDPName.DisplayMember = “DepartmentName”
![Page 178: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/178.jpg)
178
THÍ DỤ DATABINDING
Với CSDL Users.mdb, thiết kế Form cho phép hiển thị tên người dùng cùng các quyền tương ứng.Giải quyết:- Sử dụng lớp cnAccess ở phần trước để tạo kết nối.- Một đối tượng Command để thực thi truy vấn.- Một đối tượng DataAdapter được dùng để thiết lập cho 1 Dataset.- Ràng buộc Dataset với lưới hiển thị.
![Page 179: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/179.jpg)
179
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 DataSetPrivate 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
End Class
![Page 180: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/180.jpg)
180
THÍ DỤ VỀ CẬP NHẬT DỮ LIỆU
Cũng với CSDL Users.mdb, thiết kế Form cho phép thêm quyền cho người dùng.Giải quyết:
- Kết nối đến CSDL nhờ lớp cnAccess.- Ràng buộc ComboBox người dùng vớidữ liệu của bảng Users- Ràng buộc ComboBox quyền vớidữ liệu của bảng Roles- Thêm quyền cho người dùng xác định thực chất là
thêm vào bảng RoleUser (người dùng, mã quyền).
![Page 181: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/181.jpg)
181
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 DataSetPrivate 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"End Sub
![Page 182: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/182.jpg)
182
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnAdd.Click
Dim r() As DataRow
‘ Tìm mã quyền dựa vào tên quyền trên ComboBox tên quyền
r = dt.Tables("Role").Select("RoleName = '" & cboRole.Text & "'") Try Dim comT As OleDb.OleDbCommand
‘ Thực thi câu truy vấn hành động
comT = New OleDb.OleDbCommand("Insert Into RoleUser Values(" & _ r(0).Item(0) & ",'" & cboUser.Text & "')", cn.conn)
comT.ExecuteNonQuery() MessageBox.Show("Thêm hoàn tất!") Catch e1 As Exception MessageBox.Show("Dữ liệu đã có. Thêm không thành công!") End Try End SubEnd Class
![Page 183: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/183.jpg)
183
KẾT QUẢ
![Page 184: Bai Giang Chuyen de Ve Mot Ngon Ngu Lap Trinh VB](https://reader033.vdocuments.pub/reader033/viewer/2022050921/5571f21849795947648c232b/html5/thumbnails/184.jpg)
184
Cám ơn đã quan tâm!!!