Bài giảng Chuyên đề C#: Chương 5c - Kiểm tra tính hợp lệ dữ liệu - Validation bao gồm những nội dung về Windows Form Validation, sự kiện kiểm tra tính hợp lệ, sự kiện kiểm tra tính hợp lệ của DataGridView, hiện thông báo lỗi,... Mời các bạn tham khảo.
Chương Kiểm tra tính hợp lệ liệu - Validation - Giới thiệu Phần quan trọng ứng dụng sở liệu • Đảm bảo tính qn liệu • Bắt lỗi lỗi xảy Windows Form Validation Kiểm tra phải nhập Kiểm tra liệu có phải số không Kiểm tra liệu miền giá trị Kiểm tra liệu giống với mẫu định sẵn Kiểm tra liệu theo quy tắc nghiệp vụ Sự kiện kiểm tra tính hợp lệ Mỗi control có hai kiện • Validating – Ngay sau nhập xong liệu – Trước liệu chấp nhận hợp lệ • Validated – Sau liệu chấp nhận hợp lệ Sự kiện kiểm tra tính hợp lệ false Nhấn tab Hợp lệ true Sự kiện kiểm tra tính hợp lệ Tham số kiện Validating Validated • CancelEventArgs – Cancel = true: báo liệu không hợp lệ private void OnUsernameValidating(object sender, CancelEventArgs e) { if (string.IsNullOrEmpty(m_UsernameTextBox.Text)) { e.Cancel = true; MessageBox.Show("Username is a required field"); } } Sự kiện kiểm tra tính hợp lệ DataGridView Có vài cấp validation • Cấp lưới – Validating – Validated • Cấp dịng – RowValidating – RowValidated • Cấp ô (cell) – CellValidating – CellValidated Sự kiện kiểm tra tính hợp lệ DataGridView Tham số kiện Validating Validated • Dịng – DataGridViewCellCancelEventArgs Cancel = true • Ơ (cell) – DataGridViewCellValidatingEventArgs RowIndex ColumnIndex Cancel = true Hiện thơng báo lỗi Lớp MessageBox Lớp ErrorProvider • Ánh xạ thơng tin lỗi với control • Phương thức: – SetError(tênControl, “thông báo lỗi”); – “thông báo lỗi” = null: xóa thơng tin lỗi • Property – Icon: biểu tượng lỗi – BlinkStyle, BlinkRate – DataSource, DataMember Hiện thông báo lỗi private void OnPasswordValidating(object sender, CancelEventArgs e) { if (!string.IsNullOrEmpty(m_UsernameTextBox.Text) && !CheckPasswordForUser()) { m_ErrorProvider.SetError(m_PasswordTextBox, "Password is incorrect"); } else { m_ErrorProvider.SetError(m_PasswordTextBox, null); } } 10 Tạo chuỗi BTCQ Đối sánh với chuỗi thơng thường • “trang” BTCQ • “CSharp” BTCQ Đối sánh với chuỗi • Ký hiệu: “.” Đối sánh với ký tự đặc biệt: • “\.” “\\” “\[” “\]” 18 Tạo chuỗi BTCQ Đối sánh với vài ký tự • Vấn đề: a na, sa, … Muốn “na” “sa” • [ns]a • [ ] định nghĩa tập hợp Đối sánh với vùng (miền) ký tự liên tiếp • [0123456789] = [0-9] • [a-z]: Ký tự từ a z 19 Tạo chuỗi BTCQ Đối sánh với nhiều vùng (miền) ký tự liên tiếp • [ABCDEFGHIJKLMNOPQRSTUVWXYZabcde fghijklmnopqrstuvwxyz01234567890] • [A-Za-z0-9] Đối sánh “bất kỳ ngoại trừ” • [^a-z0-9]:Khơng Ký tự từ a z 09 20 Tạo chuỗi BTCQ Đối sánh với vài ký tự đặc biệt • Đối sánh số – \d – \D Một số có chữ số Khơng số • Đối sánh ký tự –w – \W Ký tự chữ, số, gạch dưới: [a-zA-Z0-9_] Ngược lại \w: [^a-zA-Z0-9_] 21 Tạo chuỗi BTCQ Đối sánh ký tự khoảng trắng • • • • \s \S \t \n space hay tab hay newline ngược lại \s tab newline 22 Ký tự neo • ^ • $ Bắt đầu dịng Cuối dịng 23 Đối sánh với nhiều ký tự hay tập hợp • • • • • X+ Có hay nhiều X X? Có hay X X* Có hay nhiều X (xyz)+ Có hay nhiều mẫu xyz X{m, n}Có m khơng nhiều n X • X{m,} Ít có m lần X 24 Một số mã: Ký tự lựa chọn was|were|will 25 Kiểm tra tính hợp lệ form Kiểm tra Field rỗng Trong form field • Bắt buộc phải nhập • Tùy ý (option) Câu hỏi: user nhập vào field phải nhập hay chưa Cách kiểm tra: • Bằng “” • Bằng null 27 Kiểm tra Zip code Zip Code chữ số • ^\d{5}$ • ^[0-9][0-9][0-9][0-9][0-9]$ Một số zip code dài hơn: 5-4 • ^\d{5}-?\d{4}$ 28 Kiểm tra liệu chữ Kiểm tra: Tên, tiểu ban, thành phố, quốc gia, … Biểu thức quy • ^[a-zA-Z]+$ 29 Kiểm tra số điện thoại Kiểm tra: • ViệtNam: – Thành phố: số – Di động: 10 số • Mỹ: (714)799 – 1455 – – – – – Gồm 10 số Mã vùng: số Số đăng ký: số Mã vùng có ( ) Số đăng ký: có khoảng trắng hay – • Biểu thức quy: ^\(?\d{3}\)?-?\s*\d{3}\s*-?\d{4}$ 30 Kiểm tra email Một số email 1.username@mailserver.com 2.username@mailserver.info 3.username@mailserver.org.se 4.username.moretext@mailserver.mil 5.username@mailserver.co.uk 6.user-name.moretext.sometext@mailserver.se 31 Kiểm tra email Một email thường có: • Dấu @ username address (lequi@aol.com) • Ít dấu address domain name (.com, mil, edu, se) • Ít ký tự (a@b.se) Biểu thức quy • @“^(([\-\w]+)\.?)+@(([\-\w]+)\.?)+\.[a-zA-Z]{2,4}$” 32 ... nhận hợp lệ Sự kiện kiểm tra tính hợp lệ false Nhấn tab Hợp lệ true Sự kiện kiểm tra tính hợp lệ Tham số kiện Validating Validated • CancelEventArgs – Cancel = true: báo liệu không hợp lệ private... ứng dụng sở liệu • Đảm bảo tính quán liệu • Bắt lỗi lỗi xảy Windows Form Validation Kiểm tra phải nhập Kiểm tra liệu có phải số khơng Kiểm tra liệu miền giá trị Kiểm tra liệu giống với... sẵn Kiểm tra liệu theo quy tắc nghiệp vụ Sự kiện kiểm tra tính hợp lệ Mỗi control có hai kiện • Validating – Ngay sau nhập xong liệu – Trước liệu chấp nhận hợp lệ • Validated – Sau liệu chấp