การทำ Validation
ใน Application การป้อนข้อมูลของผู้ใช้ ควรจะต้อง ถูกต้องและได้ตามรูปแบบที่ต้องการ มิฉะนั้น คงจะต้องเสียเวลากับการแก้ไขอีกภายหลัง ดังนั้นข้อมูลควรจะต้อง ถูกทำการ ตรวจสอบให้เป็นไปตามรูปแบบ หรือ ข้อกำหนด ที่วางไว้ ในขณะที่ผู้ใช้ ทำการป้อนข้อมูล
ซึงในส่วนนี้เราจะพูดถึงการ ทำการ validation การทำ validation คือการตรวจสอบ ความ ถูกต้องของข้อมูล และการแก้ไขข้อมูลให้ถูกต้อง ข้อมูลในที่นี้คือข้อมูลที่ผู้ใช้ ทำการป้อนให้กับ Application การทำ Validation สามารถ ตรวจสอบข้อมูลได้หลายลักษณะ เช่น การตรวจสอบรูปแบบ (format) ข้อมูล การตรวจสอบ ข้อมูลตัวเลข ให้อยู่ในขอบเขตที่ต้องการ และการตรวจสอบความยาวของข้อมูล
ดังนั้น ด้วยการทำ Validation นี้จะทำให้สามารถ แจ้งและจัดการให้ผู้ใช้ ป้อนข้อมูลที่ถูกต้อง เพื่อลด Error ที่จะเิกิดขึ้นภายหลัง
การทำ Validation User Input
ในการทำ Validate ข้อมูลใน control เราจะทำใน Validating event ของ Control นั้น ๆ Validating Event จะทำให้ผู้ใช้งาน ไม่สามารถ เลื่อนผ่าน หรือ เปลี่ยน Focus ไปยัง control ถัดไปได้ จนกว่าข้อมูลที่ป้อนนั้นจะเป็นไปตาม ข้อกำหนดที่วางไว้ เช่น Data Entry Form ด้านล่าง ผู้ใช้จะไม่สามารถย้ายจาก Control หนึ่ง ไปอีก Control หนึ่งได้ หาก หรือ จนกว่า ข้อมูลที่ป้อนเป็นไปตามกฏที่วาง ไว้
หาก กำหนดว่า ในช่อง TextBox Name จะต้องมีข้อมูล อย่างน้อย 1 ตัวอักษร ไม่สามารถปล่อยว่างได้ ในช่อง Age จะต้องกรอกข้อมูล เป็นตัวเลข มากกว่า 35 และสุดท้าย Date of joining จะต้องไม่เกินวันที่ปัจจุบัน เราสามารถจะทำได้โดย ป้อน Code ลงใน Validating ของ TextBox ดังนี้
// TextBox for Name
private void textBox1_Validating(Object sender, CancelEventArgs e)
{
if(textBox1.Text.Length == 0)
// Prompt the user to enter his name
}
// TextBox for Age
private void textBox2_Validating(Object sender, CancelEventArgs e)
{
if(Convert.ToInt32(textBox2.Text) < 35)
// Prompt the user to enter age greater than 35
}
// TextBox for Date of join
private void textBox3_Validating(Object sender, CancelEventArgs e)
{
if(Convert.ToDateTime(textBox3.Text) > DateTime.Now)
// Prompt the user to enter date prior to the current date
}
สังเกตุว่า Validating event ต้องการ Argument สองตัวคือ
- sender อ้างอิง object ที่เป็นเจ้าของ event
- e ใช้สำหรับการ cancel validating event
สำหรับ e นั้น จะทำให้ ผู้ใช้ ตรึง focus ไว้ที่ control เดิมตราบเท่า ที่ข้อมูลที่ป้อนจะเป็นไปตาม ข้อกำหนด หรือเป็นไปตามเงื่อนไข การใช้งาน e ตามตัวอย่าง
// TextBox for Name
private void textBox1_Validating(Object sender, CancelEventArgs e)
{
if(textBox1.Text.Length == 0)
{
// Prompt the user to enter his name
MessageBox.Show(“Enter name”, “Error”, MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true;
}
}
สำหรับการทำ validate โดย concept ก็เป็น ไปตามที่ได้ อธิบาย ไปแล้ว สำหรับการแสดง ข้อความหรือ Message เพื่อแจ้งหรือโต้ตอบ
กับผู้ใช้นั้น จะกล่าวต่อไป ซึ่งโดยมากที่ใช้งานกันก็คือ MessageBox ErrorProvider control และ StatusStrip control
โปรดติดตามต่อไป สำหรับผู้ที่ติดตามอ่าน Blog นี้นะครับ ผมอ้างอิงกับ Visual Studio 2005 นะครับ