Bài giảng Lập trình Ứng dụng quản lý - Tuần 15: Validation, Multithreading, Ôn tập
12/12/2018
Lập trình Ứng dụng quản lý
Validation, Multithreading, Ôn tập
Nội dung
Validation
Multithreading
Ôn tập
Cấu trúc bài thi lý thuyết
1
12/12/2018
Nội dung
Validation
Multithreading
Ôn tập
Cấu trúc bài thi lý thuyết
Validation
Dữ liệu nhập cần phải được kiểm soát tính hợp lệ
trước khi lưu xuống database để đảm bảo tính
toàn vẹn dữ liệu.
Quá trình kiểm tra tính hợp lệ của dữ liệu nhập
gọi là validation.
Tùy thuộc vào kiến trúc của ứng dụng để xây
dựng cơ chế validation phù hợp (nơi thực hiện,
mức độ,…)
2
12/12/2018
Validation Events
Validation events được thiết kế để cho phép
kiểm tra thông tin ngay khi được nhập, hơn là
chờ đợi để gửi toàn bộ biểu mẫu (form). Điều
này là rất hữu ích vì:
Người dùng sẽ yên tâm gửi biểu mẫu vì khả năng
phát sinh lỗi đã được kiểm soát.
Người dùng có thể nhập nhiều mẩu dữ liệu không
hợp lệ vào cùng một thời điểm. Nếu không kiểm tra
dữ liệu cho đến khi biểu mẫu được gửi đi, chương
trì nh sẽ phải tìm ra cách nào đó để thô ng bá o tất cả
các lỗi cùng một lúc.
Vào thời điểm người dùng gửi biểu mẫu, họ có thể
đã quên về trường cụ thể mà họ nhập không chính
xá c.
Validation Event Sequence
Khi điều hướng từ control này sang control khá c,
một chuỗi event sẽ xảy ra. Ví dụ chuyển từ TextBox1
sang TextBox2 bằng cách nhấn tab thì cá c event
xảy ra như sau
Leave (TextBox1)
Enter (TextBox2)
GotFocus (TextBox2)
Thực hiện validation với event LostFocus ?
Khi điều hướng bằng mouse:
Leave (TextBox1)
Enter (TextBox2)
GotFocus (TextBox2)
3
12/12/2018
Validating events
Trong .NET, event xảy ra khi điều hướng từ
TextBox1 sang TextBox2
Leave (TextBox1)
Enter (TextBox2)
Validating (TextBox1)
Validating (TextBox2)
LostFocus (TextBox1)
GotFocus (TextBox2)
Validated event cho phé p phản hồi dữ liệu đã
nhập chính xá c.
Validating event cho phé p thực hiện xá c minh
dữ liệu và kiểm soát chuyển focus control.
CausesValidation property
Validation chỉ diễn ra khi source control có thiết
lập property CausesValidation thành true. Ngoài
ra, Validation sẽ không xảy ra cho đến khi sự
thay đổi focus vào một control cũng có property
CausesValidation được đặt thành true. Nếu một
trong hai có một CausesValidation của false,
cá c event validation bị tạm dừng, nhưng các
event khác (như Enter và Leave) vẫn xảy ra.
Bảng sau cho thấy một số ví dụ về những gì có
thể xảy ra khi điều hướng từ control này sang
control khá c.
4
12/12/2018
.NET Validation
Source Control
Destination Control
Result
CousesValidation = false Khô ng xảy ra
Validation code bị bỏ qua
CousesValidation = true
CousesValidation = true
Validation được thực hiện
cho source control
CousesValidation = true
CousesValidation = false Validation bị hoãn lại cho
đến khi sự thay đổi focus
vào một
CausesValidation. Vào
thời điểm này, tất cả các
control cần phải được
valid theo thứ tự cho đến
khi một control được tìm
thấy với dữ liệu nhập
không hợp lệ và quá trình
bị hủy bỏ.
Ví dụ
private void TxtFN_Validating(object sender, CancelEventArgs e)
{
if (((TextBox)sender).Text.Length == 0)
{
MessageBox.Show("You must enter a first and last name.",
"Invalid Input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
e.Cancel = true;
}
}
5
12/12/2018
Vấn đề đóng form
private void BtnCancel_Click(object sender, EventArgs e)
{
AutoValidate = AutoValidate.Disable;
Close();
}
Giải quyết vấn đề
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
// If e.Cancel is true, the cancel flag has been set by a validation routine.
if (e.Cancel)
{
DialogResult result = MessageBox.Show("Do you wish to close the form?",
"Errors found", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
e.Cancel = false;
}
}
}
6
12/12/2018
ErrorProvider
Sử dụng MessageBox (Dialog) để thông báo lỗi
đến người dùng là giải pháp không tốt, làm giảm
chất lượng trải nghiệm ứng dụng.
Cần có hướng tiếp cận thông báo lỗi đến người
dùng thân thiện hơn, mục tiêu vừa không làm
gián đoạn trải nghiệm người dùng, vừa đưa được
thông tin lỗi sớm và chính xác nhất (vị trí và loại
lỗi).
.NET cung cấp control ErrorProvider để giúp hiển
thị thông tin lỗi uyển chuyển hơn.
Sử dụng ErrorProvider
private void TxtFN_Validating(object sender, CancelEventArgs e)
{
Control ctrl = (Control)sender;
if (ctrl.Text.Length == 0)
{
errorProviderMain.SetError(ctrl, "You must enter a first and last name.");
e.Cancel = true;
}
else
{
errorProviderMain.SetError(ctrl, "");
}
}
7
12/12/2018
Kiểm tra lỗi
private void BtnOK_Click(object sender, EventArgs e)
{
if (errorProviderMain.GetError(txtFN).Length == 0 &&
errorProviderMain.GetError(txtLN).Length == 0)
{
Close();
}
else
{
MessageBox.Show("You still have invalid input.",
"Invalid Input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
MaskedTextBox
Properties
Mask
PromptChar
TextMaskFormat
…
Events
TypeValidationCompleted
MaskInputRejected
…
8
12/12/2018
Nội dung
Validation
Multithreading
Ôn tập
Cấu trúc bài thi lý thuyết
Mục tiêu của MultiThreading
Giúp cho client đáp ứng tốt hơn (more
responsive).
Hoàn thành nhiều tác vụ cùng lúc.
Giúp cho một ứng dụng máy chủ có khả năng mở
rộng.
9
12/12/2018
Ví dụ
Ứng dụng với tác vụ tốn thời gian hoàn thành
Áp dụng Multithreading
10
12/12/2018
Nội dung
Validation
Multithreading
Ôn tập
Cấu trúc bài thi lý thuyết
Cơ bản
Kiến thức về .NET (chú trọng ngôn ngữ C#) về
các vấn đề
Định nghĩa biến, kiểu dữ liệu
Khai báo, định nghĩa struct, class
Phương thức và các kiểu truyền tham số
Xử lý chuỗi, định dạng xuất,…
Lập trình WinForm
Khái niệm, khai báo và sử dụng events
Xây dựng giao diện cơ bản và xử lý
11
12/12/2018
Xử lý dữ liệu
Truy vấn LINQ cơ bản
Các phương thức hỗ trợ trong Enumerable
Query syntax và Lambda syntax trên objects.
Sử dụng LINQ to SQL
Truy vấn theo yêu cầu
Tương tác với database (thêm, xóa, sửa)
Các dữ liệu quan hệ
Nội dung
Validation
Multithreading
Ôn tập
Cấu trúc bài thi lý thuyết
12
12/12/2018
Thi lý thuyết
Thời gian làm bài: 90 phút
Không sử dụng tài liệu
Có khoảng 5 câu hỏi cho các lĩnh vực ôn tập.
Phần viết code không quan trọng chính xác hoàn
toàn từ khóa mà chỉ cần rõ ý mỗi dòng code mục
đích thực hiện điều gì.
13
Bạn đang xem tài liệu "Bài giảng Lập trình Ứng dụng quản lý - Tuần 15: Validation, Multithreading, Ôn tập", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_lap_trinh_ung_dung_quan_ly_tuan_15_validation_mult.pdf

