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  
pdf 13 trang myanh 9920 Free
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:

  • pdfbai_giang_lap_trinh_ung_dung_quan_ly_tuan_15_validation_mult.pdf