SlideShare a Scribd company logo
1 of 175
Download to read offline
1
CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L
BASIC. NET
Mục t iê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 ụ t rách
Lâ m Chí Nguy ện
(lcnguyen@cit.ctu.edu.vn)
2
CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L
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.
- Truy cập cơ sở dữ liệu với ADO.NET.
- Phân phối ứng dụng.
3
CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L
BASIC. NET
Kiến thức liên quan
Kỹ năng sử dụng máy tính (Windows), Lập
trình căn bản, cơ sở dữ liệu.
Kỹ năng sử dụng máy tính Sử dụng HĐH Windows.
Lập trình căn bản Có được kỹ năng lập trình là
một lợi thế.
Cơ sở dữ liệu Câu lệnh truy vấn dữ liệu
4
Tài l iệu t ha m k hảo
Dev elopin g Win dow s-B ase d App lic ation s wit h
Visu al Ba sic .N ET an d Vis ua l C Sh arp .NE T;
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.
CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L
BASIC. NET
5
Chương 1: Giới thi ệu về .N et
Fr am ew or k
.NET Framework & Common Language
Runtime.
Ngôn ngữ Visual Basic.Net
Khai báo lớp
Tạo đối tượng từ lớp
6
Bài 1: Giới thi ệu về .NET & VIS UAL
BASI C.NET
Khái niệm và các thành phần của .Net
Framework.
Cấu trúc 1 ứng dụng .NET
Giới thiệu về Visual Basic.NET
Chương trình Visual Basic.Net đầu tiên.
7
.NE T F RAM EW ORK
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.
8
CÁC T HÀNH PH ẦN CỦ A .NET
FRAMEW ORK
9
NGÔN NGỮ & .N ET FRA ME WORK
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)
10
CẤU TR ÚC CỦA 1 ỨN G DỤN G .NET
Assembly: tập hợp mã lệnh, tài nguyên và dữ
liệu.
Assembly manifest: chứa đựng thông tin về
những gì được mô tả trong assembly:
- Định danh.
- Danh sách các kiểu
- Danh sách các assemblies khác.
- Danh sách quyền truy cập…
11
CẤU TR ÚC ASSE MB LY
12
VISU AL B ASIC. NET
Một phần của Visual Studio.NET
Thuần hướng đối tượng.
Ngôn ngữ duy nhất trong VB.NET hỗ trợ
ràng buộc trễ.
Ngôn ngữ duy nhất trong VB.NET hỗ trợ
chế độ dịch nền.
Không phân biệt chữ hoa và chữ thường.
13
ỨN G DỤN G .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 Hello
Public Sub Main()
System.Console.WriteLine("hello world")
End Sub
End Module
Dịch t ập t in: v bc H elloWo rld.vb
Thực t hi t ập t in H elloWorld.e xe
14
Bài 2: Ngôn ngữ lập trì nh VIS UAL
BASIC. NET
Kiểu dữ liệu, biến & hằng trong VB.NET.
Câu lệnh đơn trong VB.NET
Các lệnh có cấu trúc của VB.NET
15
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
16
BIẾ N ( VA RIABLE )
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:
Di m| Pri vate|P ubli c|F ri end|
Pro te cted _
<Tên biến> As <Kiểu> [= <Biểu thức>]
17
BIẾ N ( VA RIABLE )
Biến cục bộ: là biến được khai báo trong
một khối lệnh (Dim)
TD: Tìm g iá tr ị ng hịch đảo của x
If x <> 0 Then
Dim rec As Integer
rec = 1/x
End If
MsgBox CStr(rec)
18
BIẾ N ( VA RIABLE )
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).
Priv ate : 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 đó.
Publi c: 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.
19
BIẾ N ( VA RIABLE )
Giả sử Project1, ta có Module sau:
Public Module Module1
Public iModulePublic As Integer
Friend iModuleFriend As Integer
End Module
Nế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
20
TH Í DỤ VỀ KH AI BÁO BIẾN
Dim x As Integer
Khi 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 String
Vừa khai báo vừa khởi tạo giá trị:
Dim x As Integer = 5
Dim x As Integer = 6, _
y As Integer = 9
21
HẰN G (CON STA NT)
Là đại lượng có giá trị không đổi trong quá
trình tính toán.
Priva te|Publi c|F ri end|Pr ot ected
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
22
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.
23
CHU YỂN ĐỔI KIỂ U
Tùy chọn Op tion Str ict: 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=A
sẽ có lỗi xuất hiện nếu đặt Option Str ict O n
Một số hàm chuyển đổi kiểu: CBool, CChar,
CDate, CDbl, CDec, CInt, CLng, CObj, CSng,
CStr.
24
CÂU LỆN H OPT ION
Tác động đến quá trình thực thi của trình biên
dịch.
Optio n Com pare [Binar y | Tex t] : cách thức
so sánh chuỗi.
Optio n Ex plici t [On | Off] : xác định các biến
sử dụng bắt buộc phải khai báo hay không?
Optio n Strict [On | Off ]: tự động chuyển đổi
kiểu trong biểu thức.
25
CÂU LỆN H GÁN
Cú pháp: <Tên b iế 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 System
Public 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
26
CÂU LỆN H IF
If expression Then
statements
End If
If expression Then
statements
Else
statements
End If
If expression Then
statements
ElseI f expression Then
statements
ElseI f expression Then
statements
[Else
statements]
End If
Có 3 dạng chính :
- If đơn giản.
- If có phần Else
- If và El se If nhiều
lần.
27
TH Í DỤ VỀ IF
If (TheColorYouLike = vbRed) Then
System.Console.WriteLine("You are a lucky person“)
Else If (TheColorYouLike = vbGreen) Then
System.Console.WriteLine("You are a hopeful person“)
Else If (TheColorYouLike = vbBlue) Then
System.Console.WriteLine ("You are a brave person")
Else If (TheColorYouLike = vbMagenta) Th en
System.Console.WriteLine("You are a sad person”)
Else
System.Console.WriteLine("You are an average person”)
End If
28
CÂU LỆN H SE LEC T CASE
Sele ct Ca se <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]
……
[Ca se E lse
[Khối lệnh n]]
End S elect
Từ khóa Is : So sán h <biểu t hức kiể m t ra> với 1 giá
trị
Từ khóa T o: Xác lập m iề n giá trị củ a <biể u t hức
kiểm t ra>
29
TH Í DỤ SELE CT CA SE
Sele ct Ca se Tuoi
Cas e Is <18
System.Console.WriteLine(“Vi thanh nien”)
Cas e 18 To 30
System.Console.WriteLine(“Ban da truong thanh, lo lap than di”)
Cas e 31 To 60
System.Console.WriteLine(“Ban dang o lua tuoi trung nien”)
Cas e Else
System.Console.WriteLine(“Ban da lon tuoi, nghi huu duoc roi!”)
End S ele ct
Lưu ý : Trong thí dụ trên, kh ôn g th ể vi ết Case Tuoi<18
30
VÒN G LẶP D O… LO OP
Do W hile <Expression>
<Statements>
Loop
Thực thi Stam en ts t ron g
k hi Exp re ssi on đún g
Do Unt il <Expression>
<Statements>
Loop
Thực thi Stame nts cho
đế n khi Exp ress ion
đú ng th ì d ừng lại
TD : Tìm USLN của 2 số a & b
Do Wh il e (a Mod b <>0)
r = a Mod b
a = b
b = r
Loop
UCLN = b
TD : Tìm USLN của 2 số a & b
Do Un til (a Mod b=0)
r = a Mod b
a =b
b= r
Loo p
UCLN = b
31
VÒN G LẶP F OR
Lặp xác định chính xác số lần lặp.
For variable = expression1 To expression2 [Step expression ]
Statements
Nex t [ variable_list ]
TD: Tính n!
Di m i As Int eger, K As Lon g = 1
For i = 1 To n
K = K * i
Next
32
VÒN G LẶP F OR EA CH
Lặp qua một tập hợp các giá trị.
For Each variable In expression
Statements
Nex t [ variable ]
TD: Dùng For Each đi qua toàn bộ các phần tử của 1 mảng.
Dim a( ) As I nteg er = {1, 2, 3, 4, 5}
Dim b As In tege r
For Each b In a
System.Console.WriteLine(b)
Next
33
Bài 3: T hư 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ị.
34
KHÔNG G IAN T ÊN (NAMES PAC E)
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…
35
KHAI BÁO B IẾN KIỂU T HAM C HIẾU
Gồm 2 bước: khai báo và khởi tạo đối tượng
TD : Khai báo biến đối tượng thuộc lớp Form
trong System.Windows.Forms
Dim f As System.Windows.Forms.Form
Set f = Ne w System.Windows.Forms.Form()
36
CÂU LỆN H IMPOR T
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:
Imp ort System.Windows.Forms
ta chỉ cần khai báo biến đối tượng Form trong module đó
Dim f As Form
f = New Form()
37
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.
38
KH ÁI NIỆM LỚ P
Những thuộc tính và hà nh độn g chu ng của 1 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)
39
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 kg
Hành động :
- Đi
- Nói
- Suy nghĩ
40
TẠ O MỘT LỚP MỚI
Sử dụng từ khóa Class
Class <Tên lớp>
<Các thành viên của lớp>
End Cla ss
TD: Khai báo lớp Person
Class Person
Pub lic Name As S trin g
Pub lic Age As In teger
Pub lic Weight As S in gle
End Cla ss
41
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 Person
p = Ne w Person()
42
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:
[Pub lic | Pr ivat e | F riend | P rot ect ] Fun ct ion _
<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 F un ct ion
<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ế)
43
PH ƯƠ NG THỨ C (MET HOD )
Khai báo thủ tục:
[Publi c | P riv ate | Fr iend | P rot ect ] 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 hàm>
End S ub
Gọ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 Sub
Function Add(ByVal first As Integer, ByVal second
As _
Integer) As Integer
Add = first + second
End Function
44
TRU YỀN THA M S Ố C HO P HƯƠNG T HỨ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 By Re f.
45
TH Í D Ụ TRU YỀN THA M SỐ
Public Sub Demo1()
Dim x, y As Integer
x = 15
y = 20
' Gọi phương thức 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
46
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 Person
Pub lic Name As S trin g
Pub lic Age As In teger
Pub lic Weight As Sin gle
Pub lic S ub New() ‘ P hươ ng t hức x ây d ựn g
Na me =“”
Age = 0
Weigh t = 0
End S ub
End Cla ss
47
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
…
Protect ed Overrides Sub Finalize()
‘ Thu hồi các thuộc tính
Name = “”
End Sub
End Cla ss
48
Chương 2: Giao diệ n ngườ i dùng
(Us er In terfa ce)
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.
49
Bài 1: Lập trì nh sự ki ện (Eve nt
Pr ogr am ming)
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
50
CÁC TẬ P TIN CỦA 1 ỨNG D ỤNG
WINDOW S F ORM
Ứ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
51
TẠ O ỨN G DỤ NG WINDOW S F OR M
52
53
54
LẬ P TR ÌNH SỰ KIỆN (EVENT
PR OGRAM MIN G)
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.
55
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 ?
56
Bài 2: Cửa sổ (Biểu mẫu, For m)
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.
57
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 DialogForm
f = New DialogForm()
58
BIỂ U MẪU TH ỪA K Ế (IN HER ITED
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 In heri ts 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 myForm
Inherits MainForm
‘ Cài đặt của lớp myForm
End Class
59
BIỂ U MẪU - TH UỘC TÍN H
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
60
TH IẾT LẬP T HU ỘC T ÍNH BẰNG CỬ A
SỔ TH UỘC TÍN H
61
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ường
myForm.ShowDialog() ‘ Thể hiện Form dạng Dialog
myForm.Activate()
myForm.Hide()
myForm.Close()
62
BIỂU MẪ U - SỰ KI ỆN (EVEN T)
Tạo đoạn mã xử lý sự kiện trong VB.NET:
63
BIỂU MẪ U - SỰ KI ỆN (EVEN T)
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.
64
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
Priv ate Sub myForm_Closing(By Val sender As Object, _
ByVa l e As System.ComponentModel.CancelEventArgs) _
Ha nd le s MyBase.Closing
e.Cancel = True
En d Sub
65
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.
66
ĐIỀ U KHIỂN (CON TR OL)
Đ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…
67
ĐIỀ U KHIỂN NHÃN - LAB EL
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 Label
có Name là lblTest1 thành ‘None’:
lblTest1.Text = “None”
68
ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT
BOX
Dùng để nhận/hiển thị dữ liệu về phía người dùng.
Thuộc tính:
- Nam e: Tên của ô nhập liệu TextBox.
- Text: Chuỗi hiển thị trên ô nhập liệu TextBox.
- Mult iline : TextBox có nhận nhiều dòng văn bản hay
không? (Mặc định giá trị này là False ).
- Cha ract erCh as ing : tự động chuyển đổi dữ liệu nhập của
TextBox thành dạng tương ứng (Normal, Upper, Lower).
- Pass wordCh ar : Ký tự hiển thị thay thế khi nhập.
- Font : Font chữ của TextBox
69
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 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
ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT
BOX
70
Sự k iệ n Valid at ing :
- 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 TextBox
If TextBox1.Text = "" Then
' Bắt buộc TextBox phải nhập lại, TextBox phải được kích
hoạt
e.Cancel = True
End If
End Sub
ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT
BOX
71
Đ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.
72
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()
Pr iv at e Sub btnTinh_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Hand les btnTinh.Click
Dim N, i As Int eg er , K As Lo ng = 1
N = CInt(txtN.Text)
For i = 1 To N
K = K * i
Nex t
lblKQ.Text = CStr(K)
End Sub
73
ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN
- LISTB OX ES
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
đó.
74
ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN
- LISTB OX
Thuộc tín h
- 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 t hứ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.
75
ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN
- LISTB OX
Sự k iệ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ý.
76
ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN
- LISTB OX
Pri vat e Sub myForm_Load(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
Me.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 S ub
Ngoà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…
77
ĐIỀU KHIỂN DANH SÁC H LỰ A C HỌ N -
CH ECK ED LIST BO X
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}
78
ĐIỀU KHIỂN DANH SÁC H LỰ A C HỌ N -
CH ECK ED LIST BO X
Phương t hứ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 Cli ck củ a Button Trạn g th ái
Me.lstNuoc.SetItemCheckState(1, _
CheckState.Checked)
Me.lstNuoc.SetItemCheckState(2, _
CheckState.Indeterminate)
Me.lstNuoc.SetItemCheckState(3, _
CheckState.Unchecked)
79
ĐIỀ U KHIỂN HỘP DA NH SÁ CH -
COMBOB OX
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
80
ĐIỀU KH IỂN LI ST VIE W
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?
81
LIS TVIEW - THÍ DỤ
82
LIS TVIEW - THÍ DỤ
Dim lsvTen As N ew ListView
lsvTen.Width = 300
lsvTen.Height = 200
' Hiển thị chi tiết
lsvTen.View = View.Details
' Sửa giá trị của Text
lsvTen.LabelEdit = True
lsvTen.FullRowSelect = True
' Hiển thị lưới
lsvTen.GridLines = True
Dim item1 As Ne w ListViewItem("Nguyễn Văn An", 0)
item1.SubItems.Add("1")
item1.SubItems.Add("2")
item1.SubItems.Add("3")
83
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 Ne w 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ục
lsvTen.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 ListView
lsvTen.Items.AddRange(New ListViewItem() _
{item1, item2, item3})
84
ĐIỀ U KHIỂN TRE EV IEW
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ự k iệ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.
85
ĐIỀU KHI ỂN TR EEVI EW - 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
86
Public Cla ss Customer
Public CustomerName As St ring
Public CustomerOrder As _
Ar rayList
Public Sub N ew(ByVal Name _
As St ring )
CustomerName = Name
CustomerOrder = New _
Ar rayList (0)
End Sub
End Cla ss
Public Cla ss Orders
Public OrderID As Stri ng
Public Sub New(ByV al _
id As Stri ng)
OrderID = id
En d Sub
En d Cla ss
Sự ki ện Load của Fo rm đượ c xử lý
Dim customerArray As Ne w Arr ayLi st
' Thêm khách hàng
Dim x As Integ er
For x = 0 To 9
customerArray.Add(Ne w Customer("Customer " + x.ToString()))
Ne xt x
87
‘ Thêm đơn đặt hàng
Dim customer1 As Customer
Fo r E ach customer1 In customerArray
Dim y As Int ege r
Fo r y = 0 To 4
customer1.CustomerOrder.Add(New Orders("Order" + y.ToString()))
Next y
Next customer1
' Xóa TreeView
TreeView1.Nodes.Clear()
' Tạo các nút cha là các khách hàng
Fo r E ach customer1 In customerArray
TreeView1.Nodes.Add(New TreeNode(customer1.CustomerName))
' Các nút con là các đơn đặt hàng
Dim order1 As Orders
Fo r Each order1 In customer1.CustomerOrder
TreeView1.Nodes(customerArray.IndexOf(customer1)).Nodes.Add( _
New TreeNode(customer1.CustomerName + ".“ + order1.OrderID))
Next order1
Next customer1
88
ĐIỀU KH IỂN CHE CKB OX
Được sử dụng để nhận thông tin dạng Yes/No.
Thu ộc tín h
- 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.
Pr iv at e Sub chkDam_CheckedChanged(By Va l sender _
As System.Object, ByVal e As System.EventArgs) _
Hand les chkDam.CheckedChanged
If Me.chkDam.Checked Then
Me.txtTen.Font = New Font("Arial", 9.0!, _
System.Drawing.FontStyle.Bold)
Els e
Me.txtTen.Font = New Font("Arial", 9.0!, _
System.Drawing.FontStyle.Regular)
End If
End Sub
89
ĐIỀU K HIỂN RA DIO BU TTON
- 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.
90
ĐIỀU KHI ỂN NHÓ M - GROU PB OX
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)
91
ĐIỀU K HIỂ N PI CTU RE 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ị.
92
ĐIỀ U KHIỂN IMA GELI ST
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.
Th uộ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.
93
Đ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
94
ĐIỀU K HIỂN TIMER - Thí dụ
Thiết kế ứng dụng cho phép hiển thị đồng hồ số.
Thuộc tính: Enable = True
Interval=1000
Xử lý sự kiện Tick
Priv ate Su b Timer1_Tick(By Val sender As System.Object, _
By Val e As System.EventArgs) Hand le s Timer1.Tick
Me.lblTG.Text = CStr(Now) ‘ Now: hàm lấy thời gian
End Sub
95
Bài 4: Các đi ều kh iển khá c
Hộp thoại (Dialog).
Hộp thông điệp (MessageBox)
96
HỘP TH OẠI ( DIALOG BOX )
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.
97
OPEN FILE D IALOG
Đây là hộp thoại mở tập tin.
98
FONT DIAL OG
Đây là hộp thoại cho phép chọn Font.
99
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.
100
HỘ P TH ÔNG ĐI ỆP - MESS AGEBOX
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 S trin g, s2 As S trin g, _
btns As Me ss ag eBoxBut ton , icns As _
Me ss age BoxIc on ) As D ialo gR esult
s1: Thông điệp cần hiển thị.
s2: Tiêu đề của hộp thông điệp.
101
HỘ P TH ÔNG ĐI ỆP - MESS AGEB OX
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)
102
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 menu
Tạo menu bằng mã lệnh
103
ME NU - 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.
104
DR OPDOWN MEN U
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.
105
DR OPD OWN MEN U - TH Í DỤ
106
ĐIỀ U KH IỂN MAIN ME NU
Mai nMenu : hiển thị 1 menu khi ứng dụng được
thực thi. Các menu con của MainMenu gl Me nu .
Me nuIte m: mục cụ thể của 1 Menu xác định.
Th uộc tí nh
- IsParent: Tr ue 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.
107
MEN UITEM
Thuộc t ính
- Checked: là Tr ue 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ự k iện
- Click: Xảy ra khi người dùng Click chọn mục
menu.
108
Priv ate Sub MenuItem4_Click(By Val sender As System.Object, _
ByV al e As System.EventArgs) Ha ndle s MenuItem4.Click
MessageBox.Show("Bạn chọn File/Save", "Thông báo")
End Sub
Priv ate Sub MenuItem5_Click(By Val sender As System.Object, _
By Val e As System.EventArgs) Ha ndle s MenuItem5.Click
En d
End Sub
109
CONTEX T MEN U
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
Priv ate Sub Form1_Load(By Val sender As System.Object, ByVa l e _
As System.EventArgs) Ha nd les _
MyBase.Load
Me .ContextMenu = ContextMenu1
End Sub
110
TẠ O M EN U BẰNG MÃ LỆN H
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:
Pr ivate Sub Form2_Load(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handle s MyBase.Load
Dim myMainMenu As New MainMenu
Dim FileMenu As New MenuItem
Dim NewItem As N ew MenuItem
Dim OpenItem As N ew MenuItem
NewItem.Text = "&New"
OpenItem.Text = "&Open..."
FileMenu.Text = "&File"
FileMenu.MenuItems.Add(NewItem)
FileMenu.MenuItems.Add(OpenItem)
myMainMenu.MenuItems.Add(FileMenu)
Me.Menu = myMainMenu
End Sub
111
TD xóa 1 mục menu
Dim kq As New DialogResult
kq = 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
112
KẾT QUẢ TH Í DỤ
113
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.
114
Bài 1: Sử dụn g 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
115
CÁC KIỂU CỦ A .N ET
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 .N ET Ki ểu VB.N ET 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
116
Kiể u s ố t hự c
CÁC KIỂU CỦ A .N ET
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.D
ouble
Double 64 bit 15-16 ký
số
+/-5.0*10-324
.. +/-
1.7*10308
System.D
ecimal
Decimal 128 bit 28 ký số +/-1.0*10-28
.. +/-
7.9*1028
117
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 Cha r
a = “B”c
CÁC KIỂU CỦ A .N ET
118
Kiểu ch uỗ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 S trin g
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 O bje ct
o = 5
o = New System.Windows.Forms.Form()
CÁC KIỂU CỦ A .N ET
119
KIỂU DỮ LIỆU - H ÀM T HÀ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 In tege r
d = Int eger.Parse(“12345”) ‘ d là 12345
System.Console.PrintLine(CStr(d))
ToS trin g: chuyển đổi giá trị sang dạng chuỗi.
TD: Dim a As In tege r, s As S trin g
a = 1234
s = a.ToString()
System.Console.PrintLine(s)
120
Các hàm xử lý chuỗi
KIỂU DỮ LIỆU - H ÀM T HÀNH VIÊN
Hàm Ý ng hĩa
Inse rt Chèn chuỗi cho trước vào chuỗi hiện hành
Remov e Xóa một số ký tự được chỉ định.
Rep lace Thay thế chuỗi con trong chuỗi gốc bằng một chuỗi
khác
Sub Stri ng Trả về một chuỗi con từ chuỗi cho trước
ToLowe r,
ToU pper
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
121
CÁ C HÀM XỬ LÝ C HUỖI
Imp or ts System.Console
Mod ule Module1
Su b Ma in ()
Dim s1 As St ring
s1 = "Khoa CNTT - Dai Hoc Can Tho"
WriteLine(s1) ‘1
s1 = s1.Insert(12, "Khu 3 - ")
WriteLine(s1) ‘2
Dim s As St ring = s1.Substring(12)
WriteLine(s) ‘3
s = s1.Substring(12, 5)
WriteLine(s) ‘4
ReadLine()
End Su b
End Modu le
122
Bài 2: K iể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)
123
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 Week
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
Sunday = 7
End Enum
Public Enum Numbers
zero ' = 0
one ' = 1
two ‘ = 2
End Enum
Dim a As Numbers
WriteLine((a.two*2))
124
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:
Di m <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 31
Dim a(30) As Int eger
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 I nteg er
a = New Integer() {1,2,3,4}
Dim f As In teger
For Ea ch f In a
Write(f)
Next
125
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ột
Dim m(2, 4) As S in gle
‘ Khai báo và khởi tạo ma trận
Dim intArrays(,) As Integer = {{1, 2, 3}, {4, 5, 6}}
‘ Hiển thị theo dạng ma trận
Dim f As In tege r, c As In teger = 0
For Eac h f In intArrays
If c Mod 3 = 0 The n WriteLine()
Write(" ")
Write(f)
c = c + 1
Next
MẢ NG NHIỀU CHIỀU
126
TẬP H ỢP (COLLE CT ION )
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 ượn g myList có 5 ph ần t ử
Dim myList As New System.Collections.ArrayList(5)
127
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ợp
TD:
Dim f As In terg er , r As New System.Collections.ArrayList
For f = 1 To 5
r.Add(f)
Next
r.Remove(3) ‘ Xóa 3
For E ach f In r
WriteLine(f)
Next
ARR AY L IST
128
ArrayList có thể chứa các phần tử thuộc các kiểu khác nhau.
TD:
Dim f As In tege r, 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 Ob jec t
For Eac h f1 In r
If Typ eOf f1 Is Str in g Then
WriteLine(f1) ‘ Hiển thị giá trị là chuỗi
End I f
Next
ARR AY L IST
129
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.
130
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ý n goạ i lệ
131
EX CE PT ION
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.
132
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 Ex cep tion
‘ 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 Exce pti on
‘ Nếu lỗi thuộc loại en, đoạn mã này thực thi
Final ly
‘ Đ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
133
XỬ LÝ NGOẠI LỆ - T HÍ DỤ
TD: Ngoại lệ không thể đổi từ chuỗi sang số
Mod ule Module1
Su b Ma in ()
Tr y
Dim r As In teger, s As S trin g
Write("Nhap r= “)
s = ReadLine()
r = Integer.Parse(s)
WriteLine(1 / r)
Ca tch e As S yst em .Exc eption
WriteLine(e.Message + " Xu ly ngoai le")
Fin al ly
WriteLine("Khoi Finally")
En d Try
End Sub
En d Mod ule
134
XỬ LÝ NGOẠI LỆ - T HÍ DỤ
135
ĐIỀU K HIỂN ERRORP ROV IDER
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ín h
- 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 t hứ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.
136
Xử lý ngoại lệ khi người dùng nhập không phải số.
Dim N, i A s I nteg er , K As Lon g = 1
Try
N = Inte ger.Parse(txtN.Text)
For i = 1 To N
K = K * i
Next
lblKQ.Text = CStr(K)
Ca tch
err1.SetError(txtN, "Đây phải là giá trị số")
En d Try
ERRO RP ROVID ER - T HÍ DỤ
137
ERRO RP ROVID ER - T HÍ DỤ
138
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)
139
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
Pub lic strName As S trin g
Pub lic iAge As In teger
Pub lic iWeight As In teger
End Cla ss
Với cách truy cập Pub lic , thuộc tính có thể được truy xuất
không giới hạn.
140
Nếu ta muốn hạn chế truy cập, ta có thể sử dụng từ khóa
Priv at e (data hiding).
Trong TD trên, ta có thể định nghĩa thuộc tính Name:
Privat e strName As St ring
Pub lic P roper ty Name() As S trin g
Set
strName = Va lue
End S et
Ge t
Name = strName
End G et
End P roper ty
THUỘC TÍ NH (PROPERTIES)
141
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 (ReadOn ly ): 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.
Privat e iAge As In teger
Pub lic R eadOn ly P rope rt y Age() As Int eger
Get
Age = iAge
End G et
End P roper ty
THUỘC TÍ NH (PROPERTIES)
142
Thuộc tính chỉ ghi (Wri teO nly ): 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 Writ eO nly .
TD: Trọng lượng của lớp Con người là chỉ ghi.
Priv at e iAge As In teger
Public W rit eOn ly Pr op ert y Weight () As In tege r
Set
iAge = Value
End S et
End Pr op ert y
THUỘC TÍ NH (PROPERTIES)
143
ĐA H ÌN H (POLY MORPH ISM)
Đ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.
Khi định nghĩa các phương thức này, ta sử dụng từ khóa
Ove rload s.
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ố (tinh 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).
144
Cla ss Point
Pr iva te iX As I nt ege r
Pr iva te iY As I nt ege r
Public Pr ope rt y X() As I ntege r
Get
X = iX
End G et
Se t(ByVal Value As Int ege r)
iX = Value
End Se t
End Pr ope rt y
Public Pr ope rt y Y() As I ntege r
Get
Y = iY
End G et
Se t(ByVal Value As Int ege r)
iY = Value
End Se t
End Pr ope rt y
Public Sub N ew()
Me.X = 0
Me.Y = 0
End Sub
Public Sub N ew(ByVal X1 As _
Int ege r, ByVal Y1 As I ntege r)
Me.X = X1
Me.Y = Y1
End Sub
Public Sub Display()
WriteLine("({0},{1})", Me.X, Me.Y)
End Sub
Public Ov erloads Func tio n _
Distance() As Sin gl e
Re tur n Sqrt(Me.X ^ 2 + Me.Y ^ 2)
End Func tio n
145
Public O verloads Func tion _
Distance(ByVal p As Point) As Single
Re tur n Sqrt((Me.X - p.X) ^ 2 + _
(Me.Y - p.Y) ^ 2)
End Func tio n
End Cla ss ‘ Kế t thúc ĐN lớp Po int
‘ Hà m ma in
Sub Ma in()
Dim p1, p2 As Po int
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.
- Đối với phương thức xây dựng,
để nạp chồng ta không được đặt
từ khóa Overloa ds.
146
TH ỪA KẾ (IN HE RITA NCE )
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 Inhe rit s 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.
Cla ss Point3D
In herit s Point ' Thừa kế từ lớp Point
Priv at e iZ As Integ er
Public Prop ert y Z() As Inte ger
Get
Z = iZ
En d Get
Se t(By Val Value As Inte ger)
iZ = Value
En d Set
End Property
End Cla ss
147
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 Ov errid able , phương
thức của lớp con sử dụng từ khóa Ove rrid es.
Từ khóa My Ba se : 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.
Pub lic Sub New ()
MyB ase.New()
Me.Z = 0
End Sub
Pub lic Sub New (ByV al x1 As _
Intege r, ByV al y1 As In te ger , _
By Val z1 As In teg er)
MyB ase .New(X1, Y1)
Me.Z = z1
End Sub
Pub lic Overri des Sub Display()
WriteLine("Toa do p1 la _
({0},{1},{2})", Me.X, Me.Y,
Me.Z)
End Sub
148
Sub Ma in ()
Dim p1, p2 As Point3D
p1 = New Point3D(1, 2, 3)
p1.Display()
p2 = New Point3D
p2.Display()
End Sub
Kết q uả ch ươ ng t rìn h
THỪA KẾ - GHI ĐÈ PHƯƠNG THỨC
149
GIAO DIỆ N - INTER FA CE
Nếu một lớp cần thể hiện tính đa thừa kế, ta sử dụng giao
diện (Int erfa ce ).
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 (Imp lemen ts ) các
phương thức đã định nghĩa trong giao diện.
TD:
Pub lic Int erf ace Interface1
Su b A()
Fu ncti on B(ByVal C As _
Integ er) As I nte ger
End In terface
Cl ass Tool
Impl em en ts Interface1
Public Sub A() Im pl em en ts Interface1.A
‘Cài đặt A
En d Sub
…
En d Cla ss
150
Chươ ng 5: Cơ sở dữ liệu & VB.NET
Một số khái niệm về cơ sở dữ liệu
Ngôn ngữ hỏi SQL (Structure Query Language)
Giới thiệu về ADO.NET
151
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óa
Mối kết hợp (relationship)
152
CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu là một kho chứa thông tin.
Fla t fil es : 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
153
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 qua n 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(MaK H, TenKH, DiachiKH)
- HangHoa(Ma Hang , TenHang, Dongia, Ghichu)
- DatHang(STTDH, Ma KH, MaHan g, Soluong)
CƠ SỞ DỮ LIỆU
154
Bản g (tab le ): 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 (recor d): chứa các trường (fie ld ), 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
MaK H Te nKH Dia chi
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
155
Khóa chín h (prima ry k ey ): 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, MaHang
Khóa ngoạ i (fo reign ke y) : 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
156
Mối k ết hợp ( relat ionsh ip) : 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Ữ L IỆU - MỐ I K ẾT H ỢP
157
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Ữ L IỆU - MỐ I K ẾT H ỢP
158
Toà n vẹn tham ch iế u (re fere ntial in tegrit y): 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.
- Cas cad e upda te : 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.
- Casca de 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 - T OÀN VẸN THAM CH IẾU
159
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 Select
Cập nhật dữ liệu với Update
Chèn thêm dữ liệu với Insert
Xóa dữ liệu với Delete
160
ST RUC TU RE QU ERY LANGU AGE
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.
161
SQL - CÂU LỆ NH SE LE CT
Được sử dụng để lựa chọn dữ liệu theo một số điều kiện nào
đó.
Mệ nh đề Sele ct
TD: Với CSDL người dùng
- Tìm kiếm tất cả các người dùng
Sele ct UserName From Users
- Nếu muốn tên các người dùng không trùng nhau:
Sele ct D is tin ct UserName From RoleUser
- Ký tự * được dùng chỉ tất cả các trường
Sele ct * Fr om Users
- Sau Select có thể là một biểu thức
Sele ct RoleID*10, RoleName From Roles
162
Mệ nh đề Wh ere : dùng để lọc & kết nối dữ liệu.
TD:
- Tìm các tên quyền có mã >3
Sele ct RoleName From Roles Wh ere RoleID>3
- Tìm các bộ (người dùng, tên quyền) tương ứng với mã quyền
>3
Sele ct UserName, RoleName From Roles, RoleUser
Wh ere RoleUser.RoleID = Roles.RoleID AND
Roles.RoleID > 3
Các phép toán:
- So sánh: >, >=, <, <=, =, <>, BETWEEN…AND
- Logic: AND, NOT, OR
TD: Tìm các tên quyền có mã từ 2 đến 4
Sele ct RoleName From Roles
Wh ere RoleID BE TW EEN 2 AN D 4
SQL - CÂU LỆ NH SE LE CT
163
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:
Sele ct RoleName From Roles
Wh ere RoleName LIKE “%e”
- Tìm các tên người dùng có ký tự thứ 2 là h
Sele ct UserName From Users
Wh ere UserName LIKE “_h%”
Mệ nh đề s ắp t hứ t ự Or der 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.
Sele ct RoleName From Roles
Wh ere RoleID>1 Or der B y RoleName ASC
SQL - CÂU LỆ NH SE LE CT
164
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 User
Inse rt In to Users Va lue s(“nqtoan”, ”abc”)
- Ta có thể chỉ rõ tên trường & giá trị cần xen.
Inse rt In to Users(Password, UserName)
Valu es(“abc”, “nqtoan”)
- Thêm cho tất cả người dùng quyền mới có mã là 4
Inse rt In to RoleUser
Sele ct UserName As UserName, 4 As RoleID
From Users
SQL - CÂ U LỆN H INSERT
165
Upd at e: 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
Upd at e Users
Set Password = “abc”
Wh ere UserName = “lhbao”
Dele te: 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
Dele te From RoleUser
- Xóa tất cả các quyền của người dùng lhbao
Dele te From RoleUser
Wh ere UserName = “lhbao”
SQL - UPD AT E & DE LET E
166
Bài 3: Gi ới th iệu về AD O.NET
OLE DB, ADO, ADO.NET
Dataset
.NET Data Providers
- Đối tượng Command.
- Đối tượng DataReader.
- Đối tượng DataAdapter.
DataBinding
167
OLED B
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ìn h:
OLEDB
Relational
Database
Non-Relational
Database
168
AC TI VEX D ATA OBJ ECT (A DO )
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
Relational
Database
Non-Relational
Database
ADO
169
AD O.NET
Là cải tiến của ADO.
Sử dụng XML để vận chuyển dữ liệu.
Thàn h p hầ n cơ b ản của AD O.NET :
- DataSet
- .NET data provider: gồm các thành phần Connection,
Command, DataReader, DataAdapter.
WinForm
DataSet
DataObject
DataSet
Database
XML
170
DAT AS ET
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 N ew Dataset(“EmpInfor”)
‘ Không cần chỉ tên của Dataset
Dim empDS As N ew Dataset()
Client Server
Dataset
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
171
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.
DAT AS ET
172
.NET DAT A P ROVID ERS
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 .N ET Data Provi der OLE D B .NET Data Prov id er
System.Data System.Data
System.Data.SqlClient System.Data.OleDb
173
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 SqlConnection
conn = New SqlConnection _
(“se rve r=www”;uid =lhbao;pw d=abc;da taba se =pubs”)
- OLE DB .NET Data Provider
Dim conn As OleDb.OleDbConnection
conn = New OleDb.OleDbConnection("Pr ov ide r=Microsoft.Jet.OLEDB.4.0; _
Da ta So ur ce=D:User.mdb“)
- Provider: trình cung cấp CSDL. Một số provider:
Access: Microsoft.Jet.OLEDB.4.0
SQL Server: SQLOLEDB
- Data Source: CSDL.
- User Id: tên người dùng.
- pwd: mật khẩu
.NET DAT A P ROVID ERS
174
TH Í D Ụ .N ET CON NECTIO N
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 C la ss cnAccess
Publi c conn As OleDb.OleDbConnection
Public S ub N ew(By Val FileName As S trin g)
conn = New OleDb.OleDbConnection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;” & _
“User ID=Admin;Data Source=" & FileName
conn.Open()
End Sub
Prot ect ed Ove rri de s Sub Finalize()
conn.Close()
conn = Nothing
End Sub
End Clas s
175

More Related Content

What's hot

KSS - Ứng dụng quản lý STYLE của KetcauSoft
KSS - Ứng dụng quản lý STYLE của KetcauSoftKSS - Ứng dụng quản lý STYLE của KetcauSoft
KSS - Ứng dụng quản lý STYLE của KetcauSoftHồ Việt Hùng
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Designyht4ever
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Hoa Le
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Thanh Giảng Lê
 
Bài 2: Hệ quản trị cơ sở dữ liệu
Bài 2: Hệ quản trị cơ sở dữ liệuBài 2: Hệ quản trị cơ sở dữ liệu
Bài 2: Hệ quản trị cơ sở dữ liệuChâu Trần
 
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...The Boss
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]bookbooming1
 
RCS - Phần mềm triển khai cốt thép sàn
RCS - Phần mềm triển khai cốt thép sànRCS - Phần mềm triển khai cốt thép sàn
RCS - Phần mềm triển khai cốt thép sànHồ Việt Hùng
 
Thuật Toán BEA (Bond Energy Algorithm)
Thuật Toán BEA (Bond Energy Algorithm) Thuật Toán BEA (Bond Energy Algorithm)
Thuật Toán BEA (Bond Energy Algorithm) Lương Bá Hợp
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuMasterCode.vn
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Hoa Le
 
Slide bài giảng về lập trình Scratch dành cho GV
Slide bài giảng về lập trình Scratch dành cho GVSlide bài giảng về lập trình Scratch dành cho GV
Slide bài giảng về lập trình Scratch dành cho GVBùi Việt Hà
 
Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++nataliej4
 

What's hot (20)

Giáo trình visual basic
Giáo trình visual basicGiáo trình visual basic
Giáo trình visual basic
 
KSS - Ứng dụng quản lý STYLE của KetcauSoft
KSS - Ứng dụng quản lý STYLE của KetcauSoftKSS - Ứng dụng quản lý STYLE của KetcauSoft
KSS - Ứng dụng quản lý STYLE của KetcauSoft
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Bài 2: Hệ quản trị cơ sở dữ liệu
Bài 2: Hệ quản trị cơ sở dữ liệuBài 2: Hệ quản trị cơ sở dữ liệu
Bài 2: Hệ quản trị cơ sở dữ liệu
 
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
 
RCS - Phần mềm triển khai cốt thép sàn
RCS - Phần mềm triển khai cốt thép sànRCS - Phần mềm triển khai cốt thép sàn
RCS - Phần mềm triển khai cốt thép sàn
 
Luận văn: Ứng dụng kỹ thuật học máy vào phát hiện mã độc, 9đ
Luận văn: Ứng dụng kỹ thuật học máy vào phát hiện mã độc, 9đLuận văn: Ứng dụng kỹ thuật học máy vào phát hiện mã độc, 9đ
Luận văn: Ứng dụng kỹ thuật học máy vào phát hiện mã độc, 9đ
 
Thuật Toán BEA (Bond Energy Algorithm)
Thuật Toán BEA (Bond Energy Algorithm) Thuật Toán BEA (Bond Energy Algorithm)
Thuật Toán BEA (Bond Energy Algorithm)
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệu
 
Ktmt chuong 3
Ktmt chuong 3Ktmt chuong 3
Ktmt chuong 3
 
Com201 slide 5
Com201   slide 5Com201   slide 5
Com201 slide 5
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu
 
Slide bài giảng về lập trình Scratch dành cho GV
Slide bài giảng về lập trình Scratch dành cho GVSlide bài giảng về lập trình Scratch dành cho GV
Slide bài giảng về lập trình Scratch dành cho GV
 
Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++
 

Viewers also liked

BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTMasterCode.vn
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbANHMATTROI
 
Truong Nhat ngu Iwatani Japan
Truong Nhat ngu Iwatani JapanTruong Nhat ngu Iwatani Japan
Truong Nhat ngu Iwatani JapanDu Hoc Tu Van
 
Ngu van 6 tiet 30 - 31 - cay but than
Ngu van 6   tiet 30 - 31 - cay but thanNgu van 6   tiet 30 - 31 - cay but than
Ngu van 6 tiet 30 - 31 - cay but thanDân Phạm Việt
 
Chinh phuc 600 tu vung toeic franky nouva
Chinh phuc 600 tu vung toeic  franky nouvaChinh phuc 600 tu vung toeic  franky nouva
Chinh phuc 600 tu vung toeic franky nouvatuan95
 
Căn duyên tiền định
Căn duyên tiền địnhCăn duyên tiền định
Căn duyên tiền địnhtuanpro102
 
Cac ham excel co ban va nang cao
Cac ham excel co ban va nang caoCac ham excel co ban va nang cao
Cac ham excel co ban va nang caoNguyen Van Hien
 
từ vững tiếng anh bằng hình ảnh theo chủ đề
từ vững tiếng anh bằng hình ảnh theo chủ đềtừ vững tiếng anh bằng hình ảnh theo chủ đề
từ vững tiếng anh bằng hình ảnh theo chủ đềHoàng Thái Việt
 
Tính toán evm trên microsoft project
Tính toán evm trên microsoft projectTính toán evm trên microsoft project
Tính toán evm trên microsoft projectĐàm Tài Cap
 
Chuyên đề học từ vựng
Chuyên đề học từ vựngChuyên đề học từ vựng
Chuyên đề học từ vựngDinh Tong Pham
 
Ma y than tuong
Ma y than tuongMa y than tuong
Ma y than tuongNơ Nửng
 
Hướng dẫn sử dụng photoshop cs5
Hướng dẫn sử dụng photoshop cs5Hướng dẫn sử dụng photoshop cs5
Hướng dẫn sử dụng photoshop cs5realcom
 
Phong thủy toàn tập
Phong thủy toàn tậpPhong thủy toàn tập
Phong thủy toàn tậpMrTran
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...MasterCode.vn
 

Viewers also liked (20)

BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vb
 
3000 tu vung tieng anh
3000 tu vung tieng anh3000 tu vung tieng anh
3000 tu vung tieng anh
 
Truong Nhat ngu Iwatani Japan
Truong Nhat ngu Iwatani JapanTruong Nhat ngu Iwatani Japan
Truong Nhat ngu Iwatani Japan
 
Tranh tieng anh lop 6 (bai 13)
Tranh tieng anh lop 6 (bai 13)Tranh tieng anh lop 6 (bai 13)
Tranh tieng anh lop 6 (bai 13)
 
Ngu van 6 tiet 30 - 31 - cay but than
Ngu van 6   tiet 30 - 31 - cay but thanNgu van 6   tiet 30 - 31 - cay but than
Ngu van 6 tiet 30 - 31 - cay but than
 
Chinh phuc 600 tu vung toeic franky nouva
Chinh phuc 600 tu vung toeic  franky nouvaChinh phuc 600 tu vung toeic  franky nouva
Chinh phuc 600 tu vung toeic franky nouva
 
Tu vung tieng_nhat_trinh_do_n5
Tu vung tieng_nhat_trinh_do_n5Tu vung tieng_nhat_trinh_do_n5
Tu vung tieng_nhat_trinh_do_n5
 
Căn duyên tiền định
Căn duyên tiền địnhCăn duyên tiền định
Căn duyên tiền định
 
Cac ham excel co ban va nang cao
Cac ham excel co ban va nang caoCac ham excel co ban va nang cao
Cac ham excel co ban va nang cao
 
từ vững tiếng anh bằng hình ảnh theo chủ đề
từ vững tiếng anh bằng hình ảnh theo chủ đềtừ vững tiếng anh bằng hình ảnh theo chủ đề
từ vững tiếng anh bằng hình ảnh theo chủ đề
 
Tính toán evm trên microsoft project
Tính toán evm trên microsoft projectTính toán evm trên microsoft project
Tính toán evm trên microsoft project
 
Phong thủy
Phong thủyPhong thủy
Phong thủy
 
Chuyên đề học từ vựng
Chuyên đề học từ vựngChuyên đề học từ vựng
Chuyên đề học từ vựng
 
Tướng pháp
Tướng phápTướng pháp
Tướng pháp
 
Ma y than tuong
Ma y than tuongMa y than tuong
Ma y than tuong
 
Hướng dẫn sử dụng photoshop cs5
Hướng dẫn sử dụng photoshop cs5Hướng dẫn sử dụng photoshop cs5
Hướng dẫn sử dụng photoshop cs5
 
Phong thủy toàn tập
Phong thủy toàn tậpPhong thủy toàn tập
Phong thủy toàn tập
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 

Similar to Giáo trình vb.net

Devwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#Hihi Hung
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#LanLT2011
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#LanLT2011
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]leduyk11
 
[C] giao trinh c dhbk - viet nhat
[C] giao trinh c   dhbk - viet nhat[C] giao trinh c   dhbk - viet nhat
[C] giao trinh c dhbk - viet nhatHoang Nguyen
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.commai_non
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoHuy Nguyễn
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoBác Luân
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformMasterCode.vn
 
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...VTrung46
 

Similar to Giáo trình vb.net (20)

Devwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bản
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
C# cơ bản hay
C# cơ bản hayC# cơ bản hay
C# cơ bản hay
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
[C] giao trinh c dhbk - viet nhat
[C] giao trinh c   dhbk - viet nhat[C] giao trinh c   dhbk - viet nhat
[C] giao trinh c dhbk - viet nhat
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Huong doi tuong
Huong doi tuongHuong doi tuong
Huong doi tuong
 
Phạm văn ất
Phạm văn ấtPhạm văn ất
Phạm văn ất
 
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
 

Giáo trình vb.net

  • 1. 1 CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L BASIC. NET Mục t iê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 ụ t rách Lâ m Chí Nguy ện (lcnguyen@cit.ctu.edu.vn)
  • 2. 2 CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L 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. - Truy cập cơ sở dữ liệu với ADO.NET. - Phân phối ứng dụng.
  • 3. 3 CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L BASIC. NET Kiến thức liên quan Kỹ năng sử dụng máy tính (Windows), Lập trình căn bản, cơ sở dữ liệu. Kỹ năng sử dụng máy tính Sử dụng HĐH Windows. Lập trình căn bản Có được kỹ năng lập trình là một lợi thế. Cơ sở dữ liệu Câu lệnh truy vấn dữ liệu
  • 4. 4 Tài l iệu t ha m k hảo Dev elopin g Win dow s-B ase d App lic ation s wit h Visu al Ba sic .N ET an d Vis ua l C Sh arp .NE T; 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. CHUYÊN ĐỀ VỀ 1 NNLT - VISUA L BASIC. NET
  • 5. 5 Chương 1: Giới thi ệu về .N et Fr am ew or k .NET Framework & Common Language Runtime. Ngôn ngữ Visual Basic.Net Khai báo lớp Tạo đối tượng từ lớp
  • 6. 6 Bài 1: Giới thi ệu về .NET & VIS UAL BASI C.NET Khái niệm và các thành phần của .Net Framework. Cấu trúc 1 ứng dụng .NET Giới thiệu về Visual Basic.NET Chương trình Visual Basic.Net đầu tiên.
  • 7. 7 .NE T F RAM EW ORK 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.
  • 8. 8 CÁC T HÀNH PH ẦN CỦ A .NET FRAMEW ORK
  • 9. 9 NGÔN NGỮ & .N ET FRA ME WORK 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)
  • 10. 10 CẤU TR ÚC CỦA 1 ỨN G DỤN G .NET Assembly: tập hợp mã lệnh, tài nguyên và dữ liệu. Assembly manifest: chứa đựng thông tin về những gì được mô tả trong assembly: - Định danh. - Danh sách các kiểu - Danh sách các assemblies khác. - Danh sách quyền truy cập…
  • 11. 11 CẤU TR ÚC ASSE MB LY
  • 12. 12 VISU AL B ASIC. NET Một phần của Visual Studio.NET Thuần hướng đối tượng. Ngôn ngữ duy nhất trong VB.NET hỗ trợ ràng buộc trễ. Ngôn ngữ duy nhất trong VB.NET hỗ trợ chế độ dịch nền. Không phân biệt chữ hoa và chữ thường.
  • 13. 13 ỨN G DỤN G .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 Hello Public Sub Main() System.Console.WriteLine("hello world") End Sub End Module Dịch t ập t in: v bc H elloWo rld.vb Thực t hi t ập t in H elloWorld.e xe
  • 14. 14 Bài 2: Ngôn ngữ lập trì nh VIS UAL BASIC. NET Kiểu dữ liệu, biến & hằng trong VB.NET. Câu lệnh đơn trong VB.NET Các lệnh có cấu trúc của VB.NET
  • 15. 15 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
  • 16. 16 BIẾ N ( VA RIABLE ) 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: Di m| Pri vate|P ubli c|F ri end| Pro te cted _ <Tên biến> As <Kiểu> [= <Biểu thức>]
  • 17. 17 BIẾ N ( VA RIABLE ) Biến cục bộ: là biến được khai báo trong một khối lệnh (Dim) TD: Tìm g iá tr ị ng hịch đảo của x If x <> 0 Then Dim rec As Integer rec = 1/x End If MsgBox CStr(rec)
  • 18. 18 BIẾ N ( VA RIABLE ) 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). Priv ate : 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 đó. Publi c: 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.
  • 19. 19 BIẾ N ( VA RIABLE ) Giả sử Project1, ta có Module sau: Public Module Module1 Public iModulePublic As Integer Friend iModuleFriend As Integer End Module Nế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
  • 20. 20 TH Í DỤ VỀ KH AI BÁO BIẾN Dim x As Integer Khi 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 String Vừa khai báo vừa khởi tạo giá trị: Dim x As Integer = 5 Dim x As Integer = 6, _ y As Integer = 9
  • 21. 21 HẰN G (CON STA NT) Là đại lượng có giá trị không đổi trong quá trình tính toán. Priva te|Publi c|F ri end|Pr ot ected 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
  • 22. 22 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.
  • 23. 23 CHU YỂN ĐỔI KIỂ U Tùy chọn Op tion Str ict: 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=A sẽ có lỗi xuất hiện nếu đặt Option Str ict O n Một số hàm chuyển đổi kiểu: CBool, CChar, CDate, CDbl, CDec, CInt, CLng, CObj, CSng, CStr.
  • 24. 24 CÂU LỆN H OPT ION Tác động đến quá trình thực thi của trình biên dịch. Optio n Com pare [Binar y | Tex t] : cách thức so sánh chuỗi. Optio n Ex plici t [On | Off] : xác định các biến sử dụng bắt buộc phải khai báo hay không? Optio n Strict [On | Off ]: tự động chuyển đổi kiểu trong biểu thức.
  • 25. 25 CÂU LỆN H GÁN Cú pháp: <Tên b iế 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 System Public 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
  • 26. 26 CÂU LỆN H IF If expression Then statements End If If expression Then statements Else statements End If If expression Then statements ElseI f expression Then statements ElseI f expression Then statements [Else statements] End If Có 3 dạng chính : - If đơn giản. - If có phần Else - If và El se If nhiều lần.
  • 27. 27 TH Í DỤ VỀ IF If (TheColorYouLike = vbRed) Then System.Console.WriteLine("You are a lucky person“) Else If (TheColorYouLike = vbGreen) Then System.Console.WriteLine("You are a hopeful person“) Else If (TheColorYouLike = vbBlue) Then System.Console.WriteLine ("You are a brave person") Else If (TheColorYouLike = vbMagenta) Th en System.Console.WriteLine("You are a sad person”) Else System.Console.WriteLine("You are an average person”) End If
  • 28. 28 CÂU LỆN H SE LEC T CASE Sele ct Ca se <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] …… [Ca se E lse [Khối lệnh n]] End S elect Từ khóa Is : So sán h <biểu t hức kiể m t ra> với 1 giá trị Từ khóa T o: Xác lập m iề n giá trị củ a <biể u t hức kiểm t ra>
  • 29. 29 TH Í DỤ SELE CT CA SE Sele ct Ca se Tuoi Cas e Is <18 System.Console.WriteLine(“Vi thanh nien”) Cas e 18 To 30 System.Console.WriteLine(“Ban da truong thanh, lo lap than di”) Cas e 31 To 60 System.Console.WriteLine(“Ban dang o lua tuoi trung nien”) Cas e Else System.Console.WriteLine(“Ban da lon tuoi, nghi huu duoc roi!”) End S ele ct Lưu ý : Trong thí dụ trên, kh ôn g th ể vi ết Case Tuoi<18
  • 30. 30 VÒN G LẶP D O… LO OP Do W hile <Expression> <Statements> Loop Thực thi Stam en ts t ron g k hi Exp re ssi on đún g Do Unt il <Expression> <Statements> Loop Thực thi Stame nts cho đế n khi Exp ress ion đú ng th ì d ừng lại TD : Tìm USLN của 2 số a & b Do Wh il e (a Mod b <>0) r = a Mod b a = b b = r Loop UCLN = b TD : Tìm USLN của 2 số a & b Do Un til (a Mod b=0) r = a Mod b a =b b= r Loo p UCLN = b
  • 31. 31 VÒN G LẶP F OR Lặp xác định chính xác số lần lặp. For variable = expression1 To expression2 [Step expression ] Statements Nex t [ variable_list ] TD: Tính n! Di m i As Int eger, K As Lon g = 1 For i = 1 To n K = K * i Next
  • 32. 32 VÒN G LẶP F OR EA CH Lặp qua một tập hợp các giá trị. For Each variable In expression Statements Nex t [ variable ] TD: Dùng For Each đi qua toàn bộ các phần tử của 1 mảng. Dim a( ) As I nteg er = {1, 2, 3, 4, 5} Dim b As In tege r For Each b In a System.Console.WriteLine(b) Next
  • 33. 33 Bài 3: T hư 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ị.
  • 34. 34 KHÔNG G IAN T ÊN (NAMES PAC E) 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…
  • 35. 35 KHAI BÁO B IẾN KIỂU T HAM C HIẾU Gồm 2 bước: khai báo và khởi tạo đối tượng TD : Khai báo biến đối tượng thuộc lớp Form trong System.Windows.Forms Dim f As System.Windows.Forms.Form Set f = Ne w System.Windows.Forms.Form()
  • 36. 36 CÂU LỆN H IMPOR T 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: Imp ort System.Windows.Forms ta chỉ cần khai báo biến đối tượng Form trong module đó Dim f As Form f = New Form()
  • 37. 37 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.
  • 38. 38 KH ÁI NIỆM LỚ P Những thuộc tính và hà nh độn g chu ng của 1 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)
  • 39. 39 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 kg Hành động : - Đi - Nói - Suy nghĩ
  • 40. 40 TẠ O MỘT LỚP MỚI Sử dụng từ khóa Class Class <Tên lớp> <Các thành viên của lớp> End Cla ss TD: Khai báo lớp Person Class Person Pub lic Name As S trin g Pub lic Age As In teger Pub lic Weight As S in gle End Cla ss
  • 41. 41 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 Person p = Ne w Person()
  • 42. 42 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: [Pub lic | Pr ivat e | F riend | P rot ect ] Fun ct ion _ <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 F un ct ion <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ế)
  • 43. 43 PH ƯƠ NG THỨ C (MET HOD ) Khai báo thủ tục: [Publi c | P riv ate | Fr iend | P rot ect ] 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 hàm> End S ub Gọ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 Sub Function Add(ByVal first As Integer, ByVal second As _ Integer) As Integer Add = first + second End Function
  • 44. 44 TRU YỀN THA M S Ố C HO P HƯƠNG T HỨ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 By Re f.
  • 45. 45 TH Í D Ụ TRU YỀN THA M SỐ Public Sub Demo1() Dim x, y As Integer x = 15 y = 20 ' Gọi phương thức 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
  • 46. 46 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 Person Pub lic Name As S trin g Pub lic Age As In teger Pub lic Weight As Sin gle Pub lic S ub New() ‘ P hươ ng t hức x ây d ựn g Na me =“” Age = 0 Weigh t = 0 End S ub End Cla ss
  • 47. 47 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 … Protect ed Overrides Sub Finalize() ‘ Thu hồi các thuộc tính Name = “” End Sub End Cla ss
  • 48. 48 Chương 2: Giao diệ n ngườ i dùng (Us er In terfa ce) 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.
  • 49. 49 Bài 1: Lập trì nh sự ki ện (Eve nt Pr ogr am ming) 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
  • 50. 50 CÁC TẬ P TIN CỦA 1 ỨNG D ỤNG WINDOW S F ORM Ứ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
  • 51. 51 TẠ O ỨN G DỤ NG WINDOW S F OR M
  • 52. 52
  • 53. 53
  • 54. 54 LẬ P TR ÌNH SỰ KIỆN (EVENT PR OGRAM MIN G) 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.
  • 55. 55 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 ?
  • 56. 56 Bài 2: Cửa sổ (Biểu mẫu, For m) 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.
  • 57. 57 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 DialogForm f = New DialogForm()
  • 58. 58 BIỂ U MẪU TH ỪA K Ế (IN HER ITED 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 In heri ts 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 myForm Inherits MainForm ‘ Cài đặt của lớp myForm End Class
  • 59. 59 BIỂ U MẪU - TH UỘC TÍN H 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
  • 60. 60 TH IẾT LẬP T HU ỘC T ÍNH BẰNG CỬ A SỔ TH UỘC TÍN H
  • 61. 61 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ường myForm.ShowDialog() ‘ Thể hiện Form dạng Dialog myForm.Activate() myForm.Hide() myForm.Close()
  • 62. 62 BIỂU MẪ U - SỰ KI ỆN (EVEN T) Tạo đoạn mã xử lý sự kiện trong VB.NET:
  • 63. 63 BIỂU MẪ U - SỰ KI ỆN (EVEN T) 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.
  • 64. 64 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 Priv ate Sub myForm_Closing(By Val sender As Object, _ ByVa l e As System.ComponentModel.CancelEventArgs) _ Ha nd le s MyBase.Closing e.Cancel = True En d Sub
  • 65. 65 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.
  • 66. 66 ĐIỀ U KHIỂN (CON TR OL) Đ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…
  • 67. 67 ĐIỀ U KHIỂN NHÃN - LAB EL 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 Label có Name là lblTest1 thành ‘None’: lblTest1.Text = “None”
  • 68. 68 ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT BOX Dùng để nhận/hiển thị dữ liệu về phía người dùng. Thuộc tính: - Nam e: Tên của ô nhập liệu TextBox. - Text: Chuỗi hiển thị trên ô nhập liệu TextBox. - Mult iline : TextBox có nhận nhiều dòng văn bản hay không? (Mặc định giá trị này là False ). - Cha ract erCh as ing : tự động chuyển đổi dữ liệu nhập của TextBox thành dạng tương ứng (Normal, Upper, Lower). - Pass wordCh ar : Ký tự hiển thị thay thế khi nhập. - Font : Font chữ của TextBox
  • 69. 69 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 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 ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT BOX
  • 70. 70 Sự k iệ n Valid at ing : - 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 TextBox If TextBox1.Text = "" Then ' Bắt buộc TextBox phải nhập lại, TextBox phải được kích hoạt e.Cancel = True End If End Sub ĐIỀ U KHIỂN Ô NHẬP LI ỆU - T EXT BOX
  • 71. 71 Đ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.
  • 72. 72 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() Pr iv at e Sub btnTinh_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Hand les btnTinh.Click Dim N, i As Int eg er , K As Lo ng = 1 N = CInt(txtN.Text) For i = 1 To N K = K * i Nex t lblKQ.Text = CStr(K) End Sub
  • 73. 73 ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN - LISTB OX ES 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 đó.
  • 74. 74 ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN - LISTB OX Thuộc tín h - 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 t hứ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.
  • 75. 75 ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN - LISTB OX Sự k iệ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ý.
  • 76. 76 ĐIỀ U KHIỂN DAN H SÁC H L ỰA CHỌN - LISTB OX Pri vat e Sub myForm_Load(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Me.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 S ub Ngoà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…
  • 77. 77 ĐIỀU KHIỂN DANH SÁC H LỰ A C HỌ N - CH ECK ED LIST BO X 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}
  • 78. 78 ĐIỀU KHIỂN DANH SÁC H LỰ A C HỌ N - CH ECK ED LIST BO X Phương t hứ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 Cli ck củ a Button Trạn g th ái Me.lstNuoc.SetItemCheckState(1, _ CheckState.Checked) Me.lstNuoc.SetItemCheckState(2, _ CheckState.Indeterminate) Me.lstNuoc.SetItemCheckState(3, _ CheckState.Unchecked)
  • 79. 79 ĐIỀ U KHIỂN HỘP DA NH SÁ CH - COMBOB OX 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
  • 80. 80 ĐIỀU KH IỂN LI ST VIE W 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?
  • 81. 81 LIS TVIEW - THÍ DỤ
  • 82. 82 LIS TVIEW - THÍ DỤ Dim lsvTen As N ew ListView lsvTen.Width = 300 lsvTen.Height = 200 ' Hiển thị chi tiết lsvTen.View = View.Details ' Sửa giá trị của Text lsvTen.LabelEdit = True lsvTen.FullRowSelect = True ' Hiển thị lưới lsvTen.GridLines = True Dim item1 As Ne w ListViewItem("Nguyễn Văn An", 0) item1.SubItems.Add("1") item1.SubItems.Add("2") item1.SubItems.Add("3")
  • 83. 83 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 Ne w 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ục lsvTen.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 ListView lsvTen.Items.AddRange(New ListViewItem() _ {item1, item2, item3})
  • 84. 84 ĐIỀ U KHIỂN TRE EV IEW 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ự k iệ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.
  • 85. 85 ĐIỀU KHI ỂN TR EEVI EW - 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
  • 86. 86 Public Cla ss Customer Public CustomerName As St ring Public CustomerOrder As _ Ar rayList Public Sub N ew(ByVal Name _ As St ring ) CustomerName = Name CustomerOrder = New _ Ar rayList (0) End Sub End Cla ss Public Cla ss Orders Public OrderID As Stri ng Public Sub New(ByV al _ id As Stri ng) OrderID = id En d Sub En d Cla ss Sự ki ện Load của Fo rm đượ c xử lý Dim customerArray As Ne w Arr ayLi st ' Thêm khách hàng Dim x As Integ er For x = 0 To 9 customerArray.Add(Ne w Customer("Customer " + x.ToString())) Ne xt x
  • 87. 87 ‘ Thêm đơn đặt hàng Dim customer1 As Customer Fo r E ach customer1 In customerArray Dim y As Int ege r Fo r y = 0 To 4 customer1.CustomerOrder.Add(New Orders("Order" + y.ToString())) Next y Next customer1 ' Xóa TreeView TreeView1.Nodes.Clear() ' Tạo các nút cha là các khách hàng Fo r E ach customer1 In customerArray TreeView1.Nodes.Add(New TreeNode(customer1.CustomerName)) ' Các nút con là các đơn đặt hàng Dim order1 As Orders Fo r Each order1 In customer1.CustomerOrder TreeView1.Nodes(customerArray.IndexOf(customer1)).Nodes.Add( _ New TreeNode(customer1.CustomerName + ".“ + order1.OrderID)) Next order1 Next customer1
  • 88. 88 ĐIỀU KH IỂN CHE CKB OX Được sử dụng để nhận thông tin dạng Yes/No. Thu ộc tín h - 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. Pr iv at e Sub chkDam_CheckedChanged(By Va l sender _ As System.Object, ByVal e As System.EventArgs) _ Hand les chkDam.CheckedChanged If Me.chkDam.Checked Then Me.txtTen.Font = New Font("Arial", 9.0!, _ System.Drawing.FontStyle.Bold) Els e Me.txtTen.Font = New Font("Arial", 9.0!, _ System.Drawing.FontStyle.Regular) End If End Sub
  • 89. 89 ĐIỀU K HIỂN RA DIO BU TTON - 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.
  • 90. 90 ĐIỀU KHI ỂN NHÓ M - GROU PB OX 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)
  • 91. 91 ĐIỀU K HIỂ N PI CTU RE 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ị.
  • 92. 92 ĐIỀ U KHIỂN IMA GELI ST 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. Th uộ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.
  • 93. 93 Đ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
  • 94. 94 ĐIỀU K HIỂN TIMER - Thí dụ Thiết kế ứng dụng cho phép hiển thị đồng hồ số. Thuộc tính: Enable = True Interval=1000 Xử lý sự kiện Tick Priv ate Su b Timer1_Tick(By Val sender As System.Object, _ By Val e As System.EventArgs) Hand le s Timer1.Tick Me.lblTG.Text = CStr(Now) ‘ Now: hàm lấy thời gian End Sub
  • 95. 95 Bài 4: Các đi ều kh iển khá c Hộp thoại (Dialog). Hộp thông điệp (MessageBox)
  • 96. 96 HỘP TH OẠI ( DIALOG BOX ) 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.
  • 97. 97 OPEN FILE D IALOG Đây là hộp thoại mở tập tin.
  • 98. 98 FONT DIAL OG Đây là hộp thoại cho phép chọn Font.
  • 99. 99 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.
  • 100. 100 HỘ P TH ÔNG ĐI ỆP - MESS AGEBOX 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 S trin g, s2 As S trin g, _ btns As Me ss ag eBoxBut ton , icns As _ Me ss age BoxIc on ) As D ialo gR esult s1: Thông điệp cần hiển thị. s2: Tiêu đề của hộp thông điệp.
  • 101. 101 HỘ P TH ÔNG ĐI ỆP - MESS AGEB OX 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)
  • 102. 102 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 menu Tạo menu bằng mã lệnh
  • 103. 103 ME NU - 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.
  • 104. 104 DR OPDOWN MEN U 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.
  • 105. 105 DR OPD OWN MEN U - TH Í DỤ
  • 106. 106 ĐIỀ U KH IỂN MAIN ME NU Mai nMenu : hiển thị 1 menu khi ứng dụng được thực thi. Các menu con của MainMenu gl Me nu . Me nuIte m: mục cụ thể của 1 Menu xác định. Th uộc tí nh - IsParent: Tr ue 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.
  • 107. 107 MEN UITEM Thuộc t ính - Checked: là Tr ue 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ự k iện - Click: Xảy ra khi người dùng Click chọn mục menu.
  • 108. 108 Priv ate Sub MenuItem4_Click(By Val sender As System.Object, _ ByV al e As System.EventArgs) Ha ndle s MenuItem4.Click MessageBox.Show("Bạn chọn File/Save", "Thông báo") End Sub Priv ate Sub MenuItem5_Click(By Val sender As System.Object, _ By Val e As System.EventArgs) Ha ndle s MenuItem5.Click En d End Sub
  • 109. 109 CONTEX T MEN U 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 Priv ate Sub Form1_Load(By Val sender As System.Object, ByVa l e _ As System.EventArgs) Ha nd les _ MyBase.Load Me .ContextMenu = ContextMenu1 End Sub
  • 110. 110 TẠ O M EN U BẰNG MÃ LỆN H 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: Pr ivate Sub Form2_Load(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handle s MyBase.Load Dim myMainMenu As New MainMenu Dim FileMenu As New MenuItem Dim NewItem As N ew MenuItem Dim OpenItem As N ew MenuItem NewItem.Text = "&New" OpenItem.Text = "&Open..." FileMenu.Text = "&File" FileMenu.MenuItems.Add(NewItem) FileMenu.MenuItems.Add(OpenItem) myMainMenu.MenuItems.Add(FileMenu) Me.Menu = myMainMenu End Sub
  • 111. 111 TD xóa 1 mục menu Dim kq As New DialogResult kq = 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
  • 112. 112 KẾT QUẢ TH Í DỤ
  • 113. 113 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.
  • 114. 114 Bài 1: Sử dụn g 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
  • 115. 115 CÁC KIỂU CỦ A .N ET 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 .N ET Ki ểu VB.N ET 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
  • 116. 116 Kiể u s ố t hự c CÁC KIỂU CỦ A .N ET 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.D ouble Double 64 bit 15-16 ký số +/-5.0*10-324 .. +/- 1.7*10308 System.D ecimal Decimal 128 bit 28 ký số +/-1.0*10-28 .. +/- 7.9*1028
  • 117. 117 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 Cha r a = “B”c CÁC KIỂU CỦ A .N ET
  • 118. 118 Kiểu ch uỗ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 S trin g 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 O bje ct o = 5 o = New System.Windows.Forms.Form() CÁC KIỂU CỦ A .N ET
  • 119. 119 KIỂU DỮ LIỆU - H ÀM T HÀ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 In tege r d = Int eger.Parse(“12345”) ‘ d là 12345 System.Console.PrintLine(CStr(d)) ToS trin g: chuyển đổi giá trị sang dạng chuỗi. TD: Dim a As In tege r, s As S trin g a = 1234 s = a.ToString() System.Console.PrintLine(s)
  • 120. 120 Các hàm xử lý chuỗi KIỂU DỮ LIỆU - H ÀM T HÀNH VIÊN Hàm Ý ng hĩa Inse rt Chèn chuỗi cho trước vào chuỗi hiện hành Remov e Xóa một số ký tự được chỉ định. Rep lace Thay thế chuỗi con trong chuỗi gốc bằng một chuỗi khác Sub Stri ng Trả về một chuỗi con từ chuỗi cho trước ToLowe r, ToU pper 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
  • 121. 121 CÁ C HÀM XỬ LÝ C HUỖI Imp or ts System.Console Mod ule Module1 Su b Ma in () Dim s1 As St ring s1 = "Khoa CNTT - Dai Hoc Can Tho" WriteLine(s1) ‘1 s1 = s1.Insert(12, "Khu 3 - ") WriteLine(s1) ‘2 Dim s As St ring = s1.Substring(12) WriteLine(s) ‘3 s = s1.Substring(12, 5) WriteLine(s) ‘4 ReadLine() End Su b End Modu le
  • 122. 122 Bài 2: K iể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)
  • 123. 123 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 Week Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6 Sunday = 7 End Enum Public Enum Numbers zero ' = 0 one ' = 1 two ‘ = 2 End Enum Dim a As Numbers WriteLine((a.two*2))
  • 124. 124 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: Di m <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 31 Dim a(30) As Int eger 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 I nteg er a = New Integer() {1,2,3,4} Dim f As In teger For Ea ch f In a Write(f) Next
  • 125. 125 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ột Dim m(2, 4) As S in gle ‘ Khai báo và khởi tạo ma trận Dim intArrays(,) As Integer = {{1, 2, 3}, {4, 5, 6}} ‘ Hiển thị theo dạng ma trận Dim f As In tege r, c As In teger = 0 For Eac h f In intArrays If c Mod 3 = 0 The n WriteLine() Write(" ") Write(f) c = c + 1 Next MẢ NG NHIỀU CHIỀU
  • 126. 126 TẬP H ỢP (COLLE CT ION ) 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 ượn g myList có 5 ph ần t ử Dim myList As New System.Collections.ArrayList(5)
  • 127. 127 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ợp TD: Dim f As In terg er , r As New System.Collections.ArrayList For f = 1 To 5 r.Add(f) Next r.Remove(3) ‘ Xóa 3 For E ach f In r WriteLine(f) Next ARR AY L IST
  • 128. 128 ArrayList có thể chứa các phần tử thuộc các kiểu khác nhau. TD: Dim f As In tege r, 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 Ob jec t For Eac h f1 In r If Typ eOf f1 Is Str in g Then WriteLine(f1) ‘ Hiển thị giá trị là chuỗi End I f Next ARR AY L IST
  • 129. 129 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.
  • 130. 130 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ý n goạ i lệ
  • 131. 131 EX CE PT ION 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.
  • 132. 132 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 Ex cep tion ‘ 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 Exce pti on ‘ Nếu lỗi thuộc loại en, đoạn mã này thực thi Final ly ‘ Đ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
  • 133. 133 XỬ LÝ NGOẠI LỆ - T HÍ DỤ TD: Ngoại lệ không thể đổi từ chuỗi sang số Mod ule Module1 Su b Ma in () Tr y Dim r As In teger, s As S trin g Write("Nhap r= “) s = ReadLine() r = Integer.Parse(s) WriteLine(1 / r) Ca tch e As S yst em .Exc eption WriteLine(e.Message + " Xu ly ngoai le") Fin al ly WriteLine("Khoi Finally") En d Try End Sub En d Mod ule
  • 134. 134 XỬ LÝ NGOẠI LỆ - T HÍ DỤ
  • 135. 135 ĐIỀU K HIỂN ERRORP ROV IDER 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ín h - 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 t hứ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.
  • 136. 136 Xử lý ngoại lệ khi người dùng nhập không phải số. Dim N, i A s I nteg er , K As Lon g = 1 Try N = Inte ger.Parse(txtN.Text) For i = 1 To N K = K * i Next lblKQ.Text = CStr(K) Ca tch err1.SetError(txtN, "Đây phải là giá trị số") En d Try ERRO RP ROVID ER - T HÍ DỤ
  • 137. 137 ERRO RP ROVID ER - T HÍ DỤ
  • 138. 138 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)
  • 139. 139 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 Pub lic strName As S trin g Pub lic iAge As In teger Pub lic iWeight As In teger End Cla ss Với cách truy cập Pub lic , thuộc tính có thể được truy xuất không giới hạn.
  • 140. 140 Nếu ta muốn hạn chế truy cập, ta có thể sử dụng từ khóa Priv at e (data hiding). Trong TD trên, ta có thể định nghĩa thuộc tính Name: Privat e strName As St ring Pub lic P roper ty Name() As S trin g Set strName = Va lue End S et Ge t Name = strName End G et End P roper ty THUỘC TÍ NH (PROPERTIES)
  • 141. 141 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 (ReadOn ly ): 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. Privat e iAge As In teger Pub lic R eadOn ly P rope rt y Age() As Int eger Get Age = iAge End G et End P roper ty THUỘC TÍ NH (PROPERTIES)
  • 142. 142 Thuộc tính chỉ ghi (Wri teO nly ): 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 Writ eO nly . TD: Trọng lượng của lớp Con người là chỉ ghi. Priv at e iAge As In teger Public W rit eOn ly Pr op ert y Weight () As In tege r Set iAge = Value End S et End Pr op ert y THUỘC TÍ NH (PROPERTIES)
  • 143. 143 ĐA H ÌN H (POLY MORPH ISM) Đ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. Khi định nghĩa các phương thức này, ta sử dụng từ khóa Ove rload s. 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ố (tinh 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).
  • 144. 144 Cla ss Point Pr iva te iX As I nt ege r Pr iva te iY As I nt ege r Public Pr ope rt y X() As I ntege r Get X = iX End G et Se t(ByVal Value As Int ege r) iX = Value End Se t End Pr ope rt y Public Pr ope rt y Y() As I ntege r Get Y = iY End G et Se t(ByVal Value As Int ege r) iY = Value End Se t End Pr ope rt y Public Sub N ew() Me.X = 0 Me.Y = 0 End Sub Public Sub N ew(ByVal X1 As _ Int ege r, ByVal Y1 As I ntege r) Me.X = X1 Me.Y = Y1 End Sub Public Sub Display() WriteLine("({0},{1})", Me.X, Me.Y) End Sub Public Ov erloads Func tio n _ Distance() As Sin gl e Re tur n Sqrt(Me.X ^ 2 + Me.Y ^ 2) End Func tio n
  • 145. 145 Public O verloads Func tion _ Distance(ByVal p As Point) As Single Re tur n Sqrt((Me.X - p.X) ^ 2 + _ (Me.Y - p.Y) ^ 2) End Func tio n End Cla ss ‘ Kế t thúc ĐN lớp Po int ‘ Hà m ma in Sub Ma in() Dim p1, p2 As Po int 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. - Đối với phương thức xây dựng, để nạp chồng ta không được đặt từ khóa Overloa ds.
  • 146. 146 TH ỪA KẾ (IN HE RITA NCE ) 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 Inhe rit s 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. Cla ss Point3D In herit s Point ' Thừa kế từ lớp Point Priv at e iZ As Integ er Public Prop ert y Z() As Inte ger Get Z = iZ En d Get Se t(By Val Value As Inte ger) iZ = Value En d Set End Property End Cla ss
  • 147. 147 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 Ov errid able , phương thức của lớp con sử dụng từ khóa Ove rrid es. Từ khóa My Ba se : 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. Pub lic Sub New () MyB ase.New() Me.Z = 0 End Sub Pub lic Sub New (ByV al x1 As _ Intege r, ByV al y1 As In te ger , _ By Val z1 As In teg er) MyB ase .New(X1, Y1) Me.Z = z1 End Sub Pub lic Overri des Sub Display() WriteLine("Toa do p1 la _ ({0},{1},{2})", Me.X, Me.Y, Me.Z) End Sub
  • 148. 148 Sub Ma in () Dim p1, p2 As Point3D p1 = New Point3D(1, 2, 3) p1.Display() p2 = New Point3D p2.Display() End Sub Kết q uả ch ươ ng t rìn h THỪA KẾ - GHI ĐÈ PHƯƠNG THỨC
  • 149. 149 GIAO DIỆ N - INTER FA CE Nếu một lớp cần thể hiện tính đa thừa kế, ta sử dụng giao diện (Int erfa ce ). 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 (Imp lemen ts ) các phương thức đã định nghĩa trong giao diện. TD: Pub lic Int erf ace Interface1 Su b A() Fu ncti on B(ByVal C As _ Integ er) As I nte ger End In terface Cl ass Tool Impl em en ts Interface1 Public Sub A() Im pl em en ts Interface1.A ‘Cài đặt A En d Sub … En d Cla ss
  • 150. 150 Chươ ng 5: Cơ sở dữ liệu & VB.NET Một số khái niệm về cơ sở dữ liệu Ngôn ngữ hỏi SQL (Structure Query Language) Giới thiệu về ADO.NET
  • 151. 151 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óa Mối kết hợp (relationship)
  • 152. 152 CƠ SỞ DỮ LIỆU Cơ sở dữ liệu là một kho chứa thông tin. Fla t fil es : 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
  • 153. 153 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 qua n 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(MaK H, TenKH, DiachiKH) - HangHoa(Ma Hang , TenHang, Dongia, Ghichu) - DatHang(STTDH, Ma KH, MaHan g, Soluong) CƠ SỞ DỮ LIỆU
  • 154. 154 Bản g (tab le ): 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 (recor d): chứa các trường (fie ld ), 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 MaK H Te nKH Dia chi 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
  • 155. 155 Khóa chín h (prima ry k ey ): 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, MaHang Khóa ngoạ i (fo reign ke y) : 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
  • 156. 156 Mối k ết hợp ( relat ionsh ip) : 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Ữ L IỆU - MỐ I K ẾT H ỢP
  • 157. 157 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Ữ L IỆU - MỐ I K ẾT H ỢP
  • 158. 158 Toà n vẹn tham ch iế u (re fere ntial in tegrit y): 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. - Cas cad e upda te : 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. - Casca de 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 - T OÀN VẸN THAM CH IẾU
  • 159. 159 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 Select Cập nhật dữ liệu với Update Chèn thêm dữ liệu với Insert Xóa dữ liệu với Delete
  • 160. 160 ST RUC TU RE QU ERY LANGU AGE 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.
  • 161. 161 SQL - CÂU LỆ NH SE LE CT Được sử dụng để lựa chọn dữ liệu theo một số điều kiện nào đó. Mệ nh đề Sele ct TD: Với CSDL người dùng - Tìm kiếm tất cả các người dùng Sele ct UserName From Users - Nếu muốn tên các người dùng không trùng nhau: Sele ct D is tin ct UserName From RoleUser - Ký tự * được dùng chỉ tất cả các trường Sele ct * Fr om Users - Sau Select có thể là một biểu thức Sele ct RoleID*10, RoleName From Roles
  • 162. 162 Mệ nh đề Wh ere : dùng để lọc & kết nối dữ liệu. TD: - Tìm các tên quyền có mã >3 Sele ct RoleName From Roles Wh ere RoleID>3 - Tìm các bộ (người dùng, tên quyền) tương ứng với mã quyền >3 Sele ct UserName, RoleName From Roles, RoleUser Wh ere RoleUser.RoleID = Roles.RoleID AND Roles.RoleID > 3 Các phép toán: - So sánh: >, >=, <, <=, =, <>, BETWEEN…AND - Logic: AND, NOT, OR TD: Tìm các tên quyền có mã từ 2 đến 4 Sele ct RoleName From Roles Wh ere RoleID BE TW EEN 2 AN D 4 SQL - CÂU LỆ NH SE LE CT
  • 163. 163 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: Sele ct RoleName From Roles Wh ere RoleName LIKE “%e” - Tìm các tên người dùng có ký tự thứ 2 là h Sele ct UserName From Users Wh ere UserName LIKE “_h%” Mệ nh đề s ắp t hứ t ự Or der 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. Sele ct RoleName From Roles Wh ere RoleID>1 Or der B y RoleName ASC SQL - CÂU LỆ NH SE LE CT
  • 164. 164 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 User Inse rt In to Users Va lue s(“nqtoan”, ”abc”) - Ta có thể chỉ rõ tên trường & giá trị cần xen. Inse rt In to Users(Password, UserName) Valu es(“abc”, “nqtoan”) - Thêm cho tất cả người dùng quyền mới có mã là 4 Inse rt In to RoleUser Sele ct UserName As UserName, 4 As RoleID From Users SQL - CÂ U LỆN H INSERT
  • 165. 165 Upd at e: 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 Upd at e Users Set Password = “abc” Wh ere UserName = “lhbao” Dele te: 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 Dele te From RoleUser - Xóa tất cả các quyền của người dùng lhbao Dele te From RoleUser Wh ere UserName = “lhbao” SQL - UPD AT E & DE LET E
  • 166. 166 Bài 3: Gi ới th iệu về AD O.NET OLE DB, ADO, ADO.NET Dataset .NET Data Providers - Đối tượng Command. - Đối tượng DataReader. - Đối tượng DataAdapter. DataBinding
  • 167. 167 OLED B 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ìn h: OLEDB Relational Database Non-Relational Database
  • 168. 168 AC TI VEX D ATA OBJ ECT (A DO ) 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 Relational Database Non-Relational Database ADO
  • 169. 169 AD O.NET Là cải tiến của ADO. Sử dụng XML để vận chuyển dữ liệu. Thàn h p hầ n cơ b ản của AD O.NET : - DataSet - .NET data provider: gồm các thành phần Connection, Command, DataReader, DataAdapter. WinForm DataSet DataObject DataSet Database XML
  • 170. 170 DAT AS ET 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 N ew Dataset(“EmpInfor”) ‘ Không cần chỉ tên của Dataset Dim empDS As N ew Dataset() Client Server Dataset 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
  • 171. 171 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. DAT AS ET
  • 172. 172 .NET DAT A P ROVID ERS 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 .N ET Data Provi der OLE D B .NET Data Prov id er System.Data System.Data System.Data.SqlClient System.Data.OleDb
  • 173. 173 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 SqlConnection conn = New SqlConnection _ (“se rve r=www”;uid =lhbao;pw d=abc;da taba se =pubs”) - OLE DB .NET Data Provider Dim conn As OleDb.OleDbConnection conn = New OleDb.OleDbConnection("Pr ov ide r=Microsoft.Jet.OLEDB.4.0; _ Da ta So ur ce=D:User.mdb“) - Provider: trình cung cấp CSDL. Một số provider: Access: Microsoft.Jet.OLEDB.4.0 SQL Server: SQLOLEDB - Data Source: CSDL. - User Id: tên người dùng. - pwd: mật khẩu .NET DAT A P ROVID ERS
  • 174. 174 TH Í D Ụ .N ET CON NECTIO N 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 C la ss cnAccess Publi c conn As OleDb.OleDbConnection Public S ub N ew(By Val FileName As S trin g) conn = New OleDb.OleDbConnection conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;” & _ “User ID=Admin;Data Source=" & FileName conn.Open() End Sub Prot ect ed Ove rri de s Sub Finalize() conn.Close() conn = Nothing End Sub End Clas s
  • 175. 175