You are on page 1of 33

LẬP TRÌNH CƠ SỞ DỮ LIỆU

Bài 4:

Try Catch, Debug

và câu lệnh SQL


Nội dung

 Try Catch

 Debug

 Câu lệnh SQL

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 2


TRY CATCH
Cấu trúc lệnh

Try
Các lệnh có thể phát sinh lỗi
Catch [VariableName as ExceptionType]
Các lệnh để xử lý lỗi khi lỗi phát sinh
[Finally
các lệnh được thực thi (có lỗi hay không có lỗi)]
End Try
Trong đó: Try, Catch và End Try là những từ khóa bắt buộc

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 3


TRY CATCH
Cấu trúc lệnh – ví dụ

Try
intQuantity=CInt(txtQuantity.Text)
lblQuantity.Text=CStr(intQuantity)
Catch
lblMessage.Text="Error in input data."
End Try

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 4


TRY CATCH
Tham số kèm theo

 Catch when: Sử dụng để bắt một lỗi cụ thể nào


đó, có thể dùng nhiều mệnh đề này trong lệnh Try
 Err: Là đối tượng cung cấp chi tiết thông tin về lỗi
phát sinh. Có 2 thuộc tính hay dùng:
 Err.Number: Mã lỗi
 Err. Description: Mô tả chi tiết lỗi

 Exit Try: Cho phép thoát ra khỏi khối lệnh Try (Các
lệnh trong Finally được thực thi trước)
09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 5
TRY CATCH
Tham số kèm theo – ví dụ

Try
PicAnh.Image=Image.FromFile(“A:\Abc.bmp”)
Catch when Err.Number=53
Msgbox”Không tìm thấy file, hãy kiểm tra lại”
Catch when Err.Number=7
Msgbox”Hết bộ nhớ ” & err.description
End Try

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 6


TRY CATCH
Bài tập

Sử dụng cấu trúc Try Catch để kiểm tra tình huống đăng
nhập vào hệ thống. Nếu đăng nhập không hợp lệ quá 3
lần -> khóa không cho thực hiện nữa

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 7


DEBUG

 Các loại lỗi


 Dò lỗi trong chế độ Break mode
 Sử dụng cửa sổ Autos, Watch
 Sử dụng cửa sổ Command

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 8


DEBUG
Các loại lỗi

 Lỗi cú pháp (Syntax): hay còn gọi là lỗi biên dịch


(sai thuộc tính,..). Các lỗi này được trình soạn
thảo Code kiểm soát
 Lỗi thực thi (Runtime): Lỗi xẩy ra khi chương
trình đang chạy, ví dụ gán dữ liệu kiểu String cho
biến kiểu Integer
 Lỗi Logic: Lỗi do người lập trình (khó tìm và khắc
phục nhất)
09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 9
DEBUG
Dò lỗi trong chế độ Break mode

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 10


Dò lỗi trong chế độ Break
mode

 Đặt điểm kiểm tra (BreakPoint): Bấm chuột vào


“tiêu đề” của dòng lệnh bắt đầu muốn kiểm tra
-> dòng code sẽ chuyển màu

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 11


DEBUG
Dò lỗi trong chế độ Break mode

 Sử dụng các nút lệnh trên thanh công cụ Debug


để kiểm tra:
 Step Into
 Step Over
 Step Out
 …

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 12


DEBUG
Sử dụng cửa sổ Autos
 Sử dụng cửa sổ Autos để kiểm tra nội dung cũng
như trạng thái của các biến trong quá trình dò lỗi
 Chỉ hiển thị nội dung của các biến, thuộc tính của
thủ tục hiện thời (thủ tục chứa điểm kiểm tra)

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 13


DEBUG
Sử dụng cửa sổ Watch
 Sử dụng cửa sổ Watch để kiểm tra nội dung cũng
như trạng thái của các biến trong chương trình.
 Có thể sử dụng 4 cửa số Watch cùng 1 lúc

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 14


DEBUG
Sử dụng cửa sổ Command
 Cho phép theo dõi chương trình và tương tác trực
tiếp với Visual basic (vd:thay đổi giá trị của biến)
 Có 2 chế độ là
 Immediate: Chế độ tức thời: Thay đổi giá trị của các
biến
 Command: Lệnh điều khiển trực tiếp: Thực hiện các
lệnh của Vb như Save as

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 15


DEBUG
Sử dụng cửa sổ Command

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 16


DEBUG
Sử dụng cửa sổ Command

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 17


CÂU LỆNH SQL

 Câu lệnh SELECT


 Câu lệnh INSERT
 Câu lệnh UPDATE
 Câu lệnh DELETE

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 18


CÂU LỆNH SQL
Câu lệnh SELECT

 Cấu trúc tổng quát


SELECT <Danh sách các cột>
FROM <Tên bảng>
WHERE < Các điều kiện ràng buộc>
GROUP BY <Tên cột – có trong phần Select>
HAVING < điều kiện bắt buộc dựa trên Group by>
ORDER BY < Tên các cột>

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 19


CÂU LỆNH SQL
Câu lệnh Select

 Các tùy chọn đi kèm sau mệnh đề Select


 *: Lấy tất cả các trường của bảng
 Top N: Lọc ra top N bản ghi đầu tiên
 As: Dùng để thay đổi tên của cột
 Distinct: Loại bỏ bản ghi trùng lặp
 Các hàm tập hợp: SUM(biểu thức),
COUNT(cột); AVG(cột), MAX, MIN

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 20


CÂU LỆNH SQL
Câu lệnh Select

 Mệnh đề WHERE: Đi kèm với Where chính là các


Biểu thức, biểu thức gồm:
 Constant (hằng): Là ký hiệu diễn tả 1 giá trị xác
định, có thể là các ký tự chữ, số, ký hiệu. Nếu
là ký tự hoặc kiểu datetime thì phải đặt trong
cặp dấu nháy
 Column: Tên của cột trong bảng dữ liệu
 Operator: Phép toán
 Phép toán so sánh
 Phép toán logic
09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 21
CÂU LỆNH SQL
Câu lệnh Select

 Phép toán so sánh


 = bằng
 > Lớn hơn
 < Nhỏ hơn
 >= Lớn hơn hoặc bằng
 <= Nhỏ hơn hoặc bằng
 <> Khác
 ! Phủ định

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 22


CÂU LỆNH SQL
Câu lệnh Select

 Toán tử đại diện


 ‘-’ Đại diện cho 1 ký tự (… where Ten like ‘C_’)
 % Đại diện cho 1 tập hợp các ký tự (.. Where Ten
like ‘C%’
 [] Một ký tự thuộc khoảng đặt trong [] (… where
HocKy like ‘HK[1-2]’)
 [^] Một ký tự không thuộc khoảng đặt trong [] (…
where HocKy like ‘HK[^1-2]’)

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 23


CÂU LỆNH SQL
Câu lệnh Select
 Phép toán Logic
 AND (… Where SoLuong>=10 and MaKh=‘Kh001’)
 OR (… Where MaKh=‘Kh007’ or MaKh=‘Kh001’)
 NOT (… Where NgayNhap Is not null)
Nếu trong một câu lệnh sử dụng nhiều hơn một phép
toán logic thì NOT được đánh giá đầu tiên sau đó
đến AND và cuối cùng là OR

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 24


CÂU LỆNH SQL
Câu lệnh Select
 Phép toán so sánh
 Between: Nằm trong khoảng (…where KL
between 10 and 50)
 Like: Giống như (… where Ten like ‘C%’)
 In: Phép toán so sánh trong 1 tập hợp (… where
Id in (’10’,’14’,’17’)

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 25


CÂU LỆNH SQL
Câu lệnh Select
 Mệnh đề GROUP BY tên cột
 Dùng để nhóm các bản ghi dựa trên 1 cột hoặc
nhiều cột. Trả về một bản ghi đại diện cho mỗi
nhóm
 Cột sử dụng để nhóm dữ liệu phải được chọn
sau mệnh đề Select
 Mệnh đề Group by thường dùng với mệnh đề
Where và Having
09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 26
CÂU LỆNH SQL
Câu lệnh Select
 Mệnh đề HAVING Biểu thức
 Dùng để lọc các bản ghi sau khi gom nhóm dữ
liệu dựa trên các cột gom nhóm hay các hàm
tập hợp (Select Malop,Count(Masv) From SinhVien Group by
MaLop Having Count(masv)>=‘50’)

 Mệnh đề Having được dùng để lọc các bản ghi


trong kết qua gom nhóm (group by)
 Trình tự thực hiện: Where -> Group by ->
Having
09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 27
CÂU LỆNH SQL
Câu lệnh Select
 Mệnh đề ORDER BY tên cột
 Dùng để sắp xếp các bản ghi kết quả của câu
lệnh truy vấn.
 Sắp xếp tăng dần: ASC (ngầm định)
 Sắp xếp giảm dần: DESC

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 28


CÂU LỆNH SQL
Câu lệnh Insert
 Dạng1: Chèn giá trị cụ thể vào bảng
INSERT INTO <Tên bảng> [<danh sách cột>]
VALUES(dữ liệu), trong đó: <D/s cột> có thể là:
+ Tên các cột cần chèn dữ liệu (phân cách bởi dấu ,)
+ bỏ qua (chèn giá trị vào tất cả các cột của bảng,
thứ tự các giá trị trong values phải giống thứ tự
các cột trong bảng)
Insert into Sinhvien(masv, hodem, ten, ngaysinh, malop)
Values(505101007,’NV’,’Lâm’,’02/18/1981’,’505101’)

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 29


CÂU LỆNH SQL
Câu lệnh Insert
 Dạng2: Lấy giá trị từ bảng khác để chèn
INSERT INTO <Tên bảng> [<danh sách cột>]
SELECT [Danh sách cột]
FROM <Tên bảng>
WHERE <điều kiện>
ORDER BY <tên cột> ASC/DESC
Insert into SvLopmon(Masv,Mamon) Select Masv, Mamon
From BangDiem Where Mamon=‘00001’ and Diem <4

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 30


CÂU LỆNH SQL
Câu lệnh Update
 Cấu trúc lệnh
UPDATE <Tên bảng>
SET <Tên cột = Giá trị>
WHERE <điều kiện>
Update Titles Set Price= Price + (25/100*Price)
Where Title_Id=‘TC7777’

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 31


CÂU LỆNH SQL
Câu lệnh Delete
 Cấu trúc lệnh
DELETE FROM <Tên bảng> WHERE <điều kiện>

Delete From tblCustomer Where CustomerName is null

-> Nguyên tắc xóa: Xóa bản ghi con trước rồi mới xóa
bản ghi cha (quan hệ)
-> Để xóa toàn bộ DL/Bảng -> Truncate Table <Tên
bảng>

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 32


CÂU LỆNH SQL
Tìm hiểu thêm

 Mệnh đề Join
 Phát biểu If… Then
 Phát biểu Case
 Tạo và sử dụng Stored Proceduce

09/07/08 Lập trình CSDL - Nguyễn Bá Tiến 33

You might also like