[ASP.NET Web Forms Workshop#04] การ Delete ข้อมูลใน Database

Jedsada Saengow
JED-NG
Published in
2 min readJan 20, 2018

ต่อไปเราจะทำการ Delete ข้อมูลใน Database นะครับ โดยเราจะใช้ Project ที่มาจากบทความก่อนหน้า คือ [ASP.NET Web Forms Workshop#03] การทำ Form และการ Insert ข้อมูลลง Database ส่วนท่านผู้อ่านที่ต้องทำตามบทความนี้เท่านั้น สามารถใช้ Downlaod จาก github ได้เช่นกันครับ

สำหรับบทความนี้เราเริ่มจะมีส่วนที่ใช้ Code ร่วมกันกับหน้าอื่นมากขึ้น ทางผู้เขียนจึงจะทำการ Refactor หลายส่วน และถ้าถามว่า…ทำไมถึงไม่เขียนให้รองรับการเรียกใช้ไฟล์จากหลาย ๆ ที่ตั้งแต่แรก คำตอบคือ เพื่อที่ท่านผู้อ่านที่เป็นมือใหม่ จะได้เข้าใจข้อเสียของการเขียนไฟล์ที่ซ้ำซ้อนกัน และเห็นข้อดีของการใช้ไฟล์ร่วมกันนั่นเองครับ

เริ่มต้นที่เปิดไฟล์ MovieRepository.cs สร้าง Method สำหรับการ Call DB เพื่อทำการ Delete ครับ โดยเราจะทำการ Refactor Code ด้วย ทั้งหมดจะได้ออกมาเป็นลักษณะนี้ครับ

MovieRepository.cs

ต่อไปเราจะ Refactor Code ในส่วนของ Function showAlert ที่เรียกใช้ JavaScript ครับ ให้เริ่มจากสร้าง Folder ชื่อว่า Controller และสร้าง Class ไฟล์ชื่อว่า BasePage.cs ครับ

จากนั้นให้เราย้าย Method ที่ชื่อว่า showAlertSuccess และ showAlertError จากไฟล์ MovieAdd.aspx.cs ออกไปที่ไฟล์ BasePage.cs ครับ และเราจะทำการ Inheritance ตัว System.Web.UI.Page เข้ามาครับ โดยการพิมพ์เป็นดังนี้ครับ

public class BasePage : System.Web.UI.Page

จะได้ทั้งหมดดังภาพด้านล่าง

BasePage.cs

จากนั้นให้ท่านผู้อ่านเปลี่ยน Class ที่ Inheritance ที่ไฟล์ MovieAdd.aspx.cs และ MovieList.aspx.cs ครับ โดยเปลี่ยนจาก System.Web.UI.Page เป็น BasePage ครับ ดังภาพ

การ Refactor ก็เรียบร้อยหมดแล้วครับ ต่อไปเราจะลองทดสอบการเรียก Method ที่เราเขียนสำหรับการ Delete ข้อมูลครับ นั่นคือ deleteMovie() นั่นเอง

เริ่มจากเพิ่มปุ่ม Delete ขึ้นมา ใน GridView ครับ

ในส่วนของไฟล์ MovieList.aspx.cs ให้พิมพ์ Code ไปที่ btnDelete_Click ดังนี้

โดย Code ทั้งหมดจะออกมาในลักษณะนี้ครับ

MovieList.aspx
MovieList.aspx.cs

จากนี้ให้ลองทดสอบการทำงานดูครับ จะได้ดังภาพ

เป็นอันเสร็จเรียบร้อยครับ บทความนี้ความยาวกำลังพอดีเลยใช่มั้ยครับ อาจจะมีเรื่องของการ Refactor ที่น่าเบื่อหน่อย แต่ก็อยากให้ท่านผู้ได้ลองเห็นปัญหา และแก้ดูจริง ๆ ครับ ขอบคุณมาก ๆ ครับที่ติดตามและอ่านจนจบ ยังเหลือเรื่องของการ Update ข้อมูลที่ Database อีกนะครับ ฝากติดตามกันต่อด้วยนะครับ

หากท่านผู้อ่านมีคำถามหรือข้อสงสัย หรือมีคำแนะนำ คำติ สามารถติดต่อผู้เขียนได้เลยครับ

--

--