מדריך CSHTML – עבודה עם נתונים: מחיקת מידע מבסיס הנתונים
בחלק זה נראה כיצד ליצור דף אשר מאפשר למשתמשים למחוק מוצר מתוך טבלת המוצרים.
- צור קובץ CSHTML חדש בשם DeleteProducts.cshtml.
- החלף את קוד ה-HTML הקיים בקוד הבא:
@{ var db = Database.OpenFile("SmallBakery.sdf"); var selectQueryString = "SELECT * FROM Products ORDER BY Name"; var ProductId = UrlData[0]; if (!ProductId.IsEmpty()) { var deleteQueryString = "DELETE FROM Products WHERE Id=@0"; db.Execute(deleteQueryString, ProductId); } } <!DOCTYPE html> <html> <head> <title>Delete Products</title> </head> <body> <h1>Delete Products</h1> @Html.ValidationSummary("Errors with your submission:") <form method="post" action="" name="form"> <table border="1"> <thead> <tr> <th/> <th>Name</th> <th>Description</th> <th>Price</th> </tr> </thead> <tbody> @foreach (var row in db.Query(selectQueryString)) { <tr> <td><a href="@Href("~/DeleteProducts",row.Id)">Delete</a></td> <td>@row.Name</td> <td>@row.Description</td> <td>@row.Price</td> </tr> } </tbody> </table> </form> </body> </html>
חלק ה- HTML בדף זה מכיל דברים שכבר ראינו בשלבים קודמים בפרק. הוא מציג את רשימת המוצרים בבסיס הנתונים בטבלת HTML. עבור כל מוצר נציג קישור לצורך מחיקת המוצר המפנה לדף DeleteProducts (הדף הנוכחי) עם פרמטר של מזהה המוצר למחיקה. כלומר, לדף זה ניתן להגיע בשתי צורות. דו דרך גלישה ישירה לדף DeleteProducts או מתוך פעולת Post לדף זה עם פרמטר של מזהה המוצר למחיקה.
בלוק הקוד בדף זה מנסה להוציא משורת הכתובת את מזהה הדף. במידה ומזהה המוצר מכיל ערך, מתבצעת פקודת מחיקה של המוצר מבסיס הנתונים ע"י הפעלת פקודת DELETE והעברת מזהה המוצר למחיקה.
if (!ProductId.IsEmpty()) { var deleteQueryString = "DELETE FROM Products WHERE Id=@0"; db.Execute(deleteQueryString, ProductId); }
- הרץ את הדף בדפדפן, ולחץ על קישור ה- Delete ליד מוצר כלשהו. המוצר נמחק מבסיס הנתונים ומוצגת רשימת מעודכנת ללא הפריט שנמחק.
תגובות בפייסבוק